{"id":29149,"date":"2021-06-08T09:36:00","date_gmt":"2021-06-08T06:36:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29149"},"modified":"2021-10-18T03:36:21","modified_gmt":"2021-10-18T00:36:21","slug":"uzyskaj-liste-filmow-z-youtube-wedlug-slow-kluczowych-za-pomoca-interfejsu-api-wyszukiwania-youtube","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/uzyskaj-liste-filmow-z-youtube-wedlug-slow-kluczowych-za-pomoca-interfejsu-api-wyszukiwania-youtube\/","title":{"rendered":"Uzyskaj list\u0119 film\u00f3w z YouTube wed\u0142ug s\u0142\u00f3w kluczowych za pomoc\u0105 interfejsu API wyszukiwania YouTube"},"content":{"rendered":"<p>YouTube to druga co do wielko\u015bci wyszukiwarka na \u015bwiecie. Ze wzgl\u0119du na swoj\u0105 popularno\u015b\u0107 wiele witryn integruje funkcje zwi\u0105zane z YouTube ze swoj\u0105 witryn\u0105. Obejmuje to osadzanie film\u00f3w z YouTube, przycisk subskrypcji YouTube, galeri\u0119 wideo YouTube, wyszukiwanie wideo itp. W tym artykule zobaczymy, jak zintegrowa\u0107 interfejs API wyszukiwania YouTube z witryn\u0105.<\/p>\n<p>W tym artykule wyja\u015bniono, jak mo\u017cna zaimplementowa\u0107 zadanie wyszukiwania film\u00f3w z YouTube na stronie internetowej. Wykorzystamy interfejs API wyszukiwania YouTube, aby uzyska\u0107 filmy na podstawie s\u0142\u00f3w kluczowych, przefiltrowa\u0107 je wed\u0142ug dost\u0119pnych opcji (data, ocena itp.) i wy\u015bwietli\u0107 list\u0119 film\u00f3w. Wydrukuj\u0119 tytu\u0142 i identyfikator wideo. U\u017cytkownik mo\u017ce wydrukowa\u0107 inne informacje r\u00f3wnie\u017c zgodnie z ich wymaganiami.<\/p>\n<h3>Pierwsze kroki<\/h3>\n<p>Aby rozpocz\u0105\u0107, musisz najpierw utworzy\u0107 klucz API na swoim koncie Konsoli Google. Ten klucz jest niezb\u0119dny podczas interakcji z interfejsami API YouTube. Bez tego klucza YouTube traktuje wszystkie przychodz\u0105ce wywo\u0142ania API jako nieautoryzowane.<\/p>\n<p>Poni\u017cej znajduj\u0105 si\u0119 kroki, aby pobra\u0107 klucz API.<\/p>\n<ul>\n<li>Przejd\u017a do Konsoli programisty Google <a href=\"https:\/\/console.developers.google.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/console.developers.google.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/console.developers.google.com<\/a>.<\/li>\n<li>Utw\u00f3rz nowy projekt. Opcjonalnie mo\u017cesz r\u00f3wnie\u017c wybra\u0107 istniej\u0105cy projekt.<\/li>\n<li>Nadaj nazw\u0119 swojemu projektowi. Konsola Google utworzy dla Ciebie unikalny identyfikator projektu.<\/li>\n<li>Tw\u00f3j nowo utworzony projekt pojawi si\u0119 na g\u00f3rze lewego paska bocznego.<\/li>\n<li>Kliknij Biblioteka z lewego menu. Zobaczysz list\u0119 interfejs\u00f3w Google API. W\u0142\u0105cz interfejs API danych YouTube.<\/li>\n<li>Nast\u0119pnie z lewego menu kliknij Po\u015bwiadczenia. Wybierz klucz API w obszarze Utw\u00f3rz po\u015bwiadczenia.<\/li>\n<li>Skopiuj ten klucz API.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20304-6081db195391c.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20304-6081db195391c.png\" alt=\"Uzyskaj list\u0119 film\u00f3w z YouTube wed\u0142ug s\u0142\u00f3w kluczowych za pomoc\u0105 interfejsu API wyszukiwania YouTube\" ><\/a><\/p>\n<h3>Utw\u00f3rz interfejs u\u017cytkownika<\/h3>\n<p>W tym samouczku zamierzam utworzy\u0107 formularz, w kt\u00f3rym u\u017cytkownik mo\u017ce wpisa\u0107 s\u0142owo kluczowe, wybra\u0107 liczb\u0119 film\u00f3w do zwr\u00f3cenia i typ filtra. Interfejs API YouTube ma limit 50 rekord\u00f3w na raz, wi\u0119c zachowamy limit 50 w polach liczbowych. Dodamy paginacj\u0119, aby uzyska\u0107 nast\u0119pny i poprzedni zestaw rekord\u00f3w. W ka\u017cdej odpowiedzi YouTube podaje warto\u015bci dla nextPageToken i prevPageToken, je\u015bli s\u0105 dost\u0119pne. U\u017cywaj\u0105c tych warto\u015bci jako parametru, takiego jak \u201epageToken=PageToken_VALUE&quot; w \u017c\u0105daniach HTTP GET, mo\u017cemy pobra\u0107 nast\u0119pny lub poprzedni zestaw rekord\u00f3w.<\/p>\n<p>Dost\u0119pnych jest kilka opcji dla typ\u00f3w filtr\u00f3w, takich jak \u201edata&#8221;, \u201eocena&#8221;, \u201etrafno\u015b\u0107&#8221;, \u201etytu\u0142&#8221;, \u201eliczba wy\u015bwietle\u0144&#8221;. U\u017cytkownik mo\u017ce wybra\u0107 jeden, a ostateczny wynik b\u0119dzie zale\u017ca\u0142 od wybranego filtra.<\/p>\n<pre><code>&lt;form method=\"get\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" name=\"q\" placeholder=\"Enter keyword\" value=\"&lt;?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?&gt;\" required&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"number\" name=\"max_result\" placeholder=\"Max Results\" min=\"1\" max=\"50\" value=\"&lt;?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?&gt;\" required&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;select name=\"order\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"\"&gt;--SELECT ORDER--&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php foreach ($arr_orders as $order) { ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"&lt;?php echo $order; ?&gt;\" &lt;?php if(array_key_exists('order', $_GET) &amp;&amp; ($order==$_GET['order'])) echo 'selected'; ?&gt;&gt;&lt;?php echo ucfirst($order); ?&gt;&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php } ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/select&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"submit\" value=\"Submit\"&gt;&lt;\/p&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Tutaj utworzyli\u015bmy formularz, kt\u00f3ry ma 3 pola do wpisania s\u0142owa kluczowego, ustawienia liczby rekord\u00f3w do zwr\u00f3cenia i typu filtra.<\/p>\n<h3>Zintegruj interfejs API wyszukiwania YouTube<\/h3>\n<p>Na tym etapie jeste\u015bmy gotowi z naszym kluczem API i formularzem HTML. Nast\u0119pnie musimy pobra\u0107 warto\u015bci formularzy i przekaza\u0107 je do punktu ko\u0144cowego API YouTube wraz z kluczem API. Nast\u0119pnie przetworzymy ostateczn\u0105 odpowied\u017a.<\/p>\n<pre><code>&lt;?php\n$api_key = 'YOUR_API_KEY';\n\u00a0\u00a0\n$arr_list = array();\nif (array_key_exists('q', $_GET) &amp;&amp; array_key_exists('max_result', $_GET) &amp;&amp; array_key_exists('order', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0$formatted_keyword = implode(\"+\", explode(\" \", $_GET['q']));\n\u00a0\u00a0\u00a0\u00a0$url = \"https:\/\/www.googleapis.com\/youtube\/v3\/search?q=$formatted_keyword&amp;order=\". $_GET['order'] .\"&amp;part=snippet&amp;type=video&amp;maxResults=\". $_GET['max_result'] .\"&amp;key=\". $api_key;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (array_key_exists('pageToken', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$url .= \"&amp;pageToken=\". $_GET['pageToken'];\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$arr_list = getYTList($url);\n}\n\u00a0\u00a0\nfunction getYTList($api_url = '') {\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_URL, $api_url);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0$response = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0$arr_result = json_decode($response);\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_result-&gt;items)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $arr_result;\n\u00a0\u00a0\u00a0\u00a0} elseif (isset($arr_result-&gt;error)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/print error $arr_result-&gt;error\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Powy\u017cszy kod sprawdza parametry zapytania s\u0142owa kluczowego, max_result i warto\u015b\u0107 zam\u00f3wienia do sortowania. Pobiera te warto\u015bci i przekazuje je do punktu ko\u0144cowego interfejsu API. W zamian do\u0142\u0105cza odpowied\u017a do zmiennej <code>$arr_list<\/code>. Przejdziemy przez t\u0119 zmienn\u0105 i wydrukujemy informacje o filmach.<\/p>\n<pre><code>&lt;?php\nif (!empty($arr_list)) {\n\u00a0\u00a0\u00a0\u00a0echo '&lt;ul&gt;';\n\u00a0\u00a0\u00a0\u00a0foreach ($arr_list-&gt;items as $item) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"&lt;li&gt;\". $item-&gt;snippet-&gt;title .\" (Video ID: \". $item-&gt;id-&gt;videoId .\")&lt;\/li&gt;\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0echo '&lt;\/ul&gt;';\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$url = \"?q=\". $_GET['q'] .\"&amp;max_result=\". $_GET['max_result'] .\"&amp;order=\". $_GET['order'];\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;prevPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;a href=\"'.$url.'&amp;pageToken='.$arr_list-&gt;prevPageToken.'\"&gt;Previous&lt;\/a&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;nextPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;a href=\"'.$url.'&amp;pageToken='.$arr_list-&gt;nextPageToken.'\"&gt;Next&lt;\/a&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Mo\u017cesz umie\u015bci\u0107 ten kod po kodzie HTML formularza. Wy\u015bwietli list\u0119 tytu\u0142\u00f3w film\u00f3w, identyfikator\u00f3w film\u00f3w wraz z linkami do paginacji.<\/p>\n<p>Nasz ostateczny kod wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<pre><code>&lt;?php\n$api_key = 'YOUR_API_KEY';\n\u00a0\u00a0\n$arr_list = array();\nif (array_key_exists('q', $_GET) &amp;&amp; array_key_exists('max_result', $_GET) &amp;&amp; array_key_exists('order', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0$formatted_keyword = implode(\"+\", explode(\" \", $_GET['q']));\n\u00a0\u00a0\u00a0\u00a0$url = \"https:\/\/www.googleapis.com\/youtube\/v3\/search?q=$formatted_keyword&amp;order=\". $_GET['order'] .\"&amp;part=snippet&amp;type=video&amp;maxResults=\". $_GET['max_result'] .\"&amp;key=\". $api_key;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (array_key_exists('pageToken', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$url .= \"&amp;pageToken=\". $_GET['pageToken'];\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$arr_list = getYTList($url);\n}\n\u00a0\u00a0\nfunction getYTList($api_url = '') {\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_URL, $api_url);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0$response = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0$arr_result = json_decode($response);\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_result-&gt;items)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $arr_result;\n\u00a0\u00a0\u00a0\u00a0} elseif (isset($arr_result-&gt;error)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/print error $arr_result-&gt;error\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;\n\u00a0\n&lt;form method=\"get\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" name=\"q\" placeholder=\"Enter keyword\" value=\"&lt;?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?&gt;\" required&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"number\" name=\"max_result\" placeholder=\"Max Results\" min=\"1\" max=\"50\" value=\"&lt;?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?&gt;\" required&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;select name=\"order\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"\"&gt;--SELECT ORDER--&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php foreach ($arr_orders as $order) { ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"&lt;?php echo $order; ?&gt;\" &lt;?php if(array_key_exists('order', $_GET) &amp;&amp; ($order==$_GET['order'])) echo 'selected'; ?&gt;&gt;&lt;?php echo ucfirst($order); ?&gt;&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php } ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/select&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"submit\" value=\"Submit\"&gt;&lt;\/p&gt;\n&lt;\/form&gt;\n\u00a0\n&lt;?php\nif (!empty($arr_list)) {\n\u00a0\u00a0\u00a0\u00a0echo '&lt;ul&gt;';\n\u00a0\u00a0\u00a0\u00a0foreach ($arr_list-&gt;items as $item) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"&lt;li&gt;\". $item-&gt;snippet-&gt;title .\" (Video ID: \". $item-&gt;id-&gt;videoId .\")&lt;\/li&gt;\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0echo '&lt;\/ul&gt;';\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$url = \"?q=\". $_GET['q'] .\"&amp;max_result=\". $_GET['max_result'] .\"&amp;order=\". $_GET['order'];\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;prevPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;a href=\"'.$url.'&amp;pageToken='.$arr_list-&gt;prevPageToken.'\"&gt;Previous&lt;\/a&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;nextPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;a href=\"'.$url.'&amp;pageToken='.$arr_list-&gt;nextPageToken.'\"&gt;Next&lt;\/a&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Mam nadziej\u0119, \u017ce rozumiesz integracj\u0119 interfejsu API wyszukiwania YouTube ze swoj\u0105 witryn\u0105. Podziel si\u0119 swoimi przemy\u015bleniami i sugestiami w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-uzyskac-tagi-wideo-youtube-za-pomoca-interfejsu-api-youtube\/\" title=\"Jak uzyska\u0107 tagi wideo YouTube za pomoc\u0105 interfejsu API YouTube?\">Jak uzyska\u0107 tagi wideo YouTube za pomoc\u0105 interfejsu API YouTube?<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/youtube-api-jak-uzyskac-liste-filmow-z-youtube-na-swoim-kanale\/\" title=\"YouTube API \u2013 jak uzyska\u0107 list\u0119 film\u00f3w z YouTube na swoim kanale\">YouTube API \u2013 jak uzyska\u0107 list\u0119 film\u00f3w z YouTube na swoim kanale<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-uzyskac-miniature-z-filmow-z-youtube-vimeo-i-dailymotion\/\" title=\"Jak uzyska\u0107 miniatur\u0119 z film\u00f3w z YouTube, Vimeo i Dailymotion\">Jak uzyska\u0107 miniatur\u0119 z film\u00f3w z YouTube, Vimeo i Dailymotion<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule dowiemy si\u0119, jak korzysta\u0107 z interfejsu API wyszukiwania YouTube, aby uzyska\u0107 list\u0119 film\u00f3w wed\u0142ug s\u0142\u00f3w kluczowych. Przeszukamy filmy na podstawie s\u0142owa kluczowego, filtru<\/p>\n","protected":false},"author":1,"featured_media":21608,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-29149","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=29149"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29149\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21608"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=29149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=29149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=29149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}