{"id":27261,"date":"2021-05-06T19:34:00","date_gmt":"2021-05-06T16:34:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27261"},"modified":"2021-10-18T03:49:32","modified_gmt":"2021-10-18T00:49:32","slug":"jak-wygenerowac-dlugowieczny-token-dostepu-do-facebooka","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-wygenerowac-dlugowieczny-token-dostepu-do-facebooka\/","title":{"rendered":"Jak wygenerowa\u0107 d\u0142ugowieczny token dost\u0119pu do Facebooka?"},"content":{"rendered":"<p>Czy kiedykolwiek spotka\u0142e\u015b si\u0119 z zadaniami API? Wtedy prawdopodobnie s\u0142ysza\u0142e\u015b o 'Access Token&#8217;. Token dost\u0119pu to rodzaj tokena to\u017csamo\u015bci, kt\u00f3rego serwisy spo\u0142eczno\u015bciowe (jak Facebook) u\u017cywaj\u0105 do wykonywania operacji w imieniu u\u017cytkownika.<\/p>\n<p>Innymi s\u0142owy, aplikacja z wa\u017cnym tokenem dost\u0119pu mo\u017ce pobra\u0107 list\u0119 Twoich znajomych, opublikowa\u0107 j\u0105 na Twojej \u015bcianie, uzyska\u0107 podstawowe dane, takie jak adres e-mail, data urodzenia itp. Oczywi\u015bcie musisz zezwoli\u0107 na wszystkie te dost\u0119py. Bez Twojej zgody token dost\u0119pu nie mo\u017ce uzyska\u0107 dost\u0119pu do informacji o u\u017cytkownikach.<\/p>\n<p>M\u00f3wi\u0105c o API Facebooka, ich API zapewnia 2 rodzaje token\u00f3w: tokeny dost\u0119pu o kr\u00f3tkim i d\u0142ugim czasie \u017cycia.<\/p>\n<p>Token kr\u00f3tkotrwa\u0142y ma kr\u00f3tki okres czasu. Oznacza to, \u017ce nie mo\u017cesz wykonywa\u0107 wywo\u0142a\u0144 API po wyga\u015bni\u0119ciu tokena. Otrzymasz nieautoryzowan\u0105 odpowied\u017a po wyga\u015bni\u0119ciu tokena. Ka\u017cde wywo\u0142anie API wymaga prawid\u0142owego tokena dost\u0119pu jako parametru, a nast\u0119pnie wysy\u0142a odpowied\u017a zwrotn\u0105.<\/p>\n<p>Po wyga\u015bni\u0119ciu tokena nale\u017cy poprosi\u0107 u\u017cytkownika o ponowne przej\u015bcie procesu logowania za pomoc\u0105 aplikacji.<\/p>\n<p>To nie ma sensu. To rodzaj powtarzaj\u0105cego si\u0119 procesu, kt\u00f3rego u\u017cytkownik w rzeczywisto\u015bci nie lubi.<\/p>\n<p>W tym miejscu powinni\u015bmy u\u017cy\u0107 koncepcji <a href=\"https:\/\/developers.facebook.com\/docs\/facebook-login\/access-tokens\/refreshing\/#generate-long-lived-token\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Long-Lived access tokena Facebooka<\/a>. \u017beton d\u0142ugowieczny trwa na og\u00f3\u0142 oko\u0142o 60 dni. I jest to znacznie lepsze ni\u017c u\u017cywanie token\u00f3w o kr\u00f3tkim czasie \u017cycia.<\/p>\n<p>Powiedziawszy to, zobaczmy, jak wygenerowa\u0107 token dost\u0119pu Long-Live do Facebooka.<\/p>\n<h3>Zarejestruj aplikacj\u0119<\/h3>\n<p>Aby rozpocz\u0105\u0107, musisz najpierw zarejestrowa\u0107 aplikacj\u0119 na Facebook Developers. Dostaniesz krok po kroku, w jaki spos\u00f3b zarejestrowa\u0107 i skonfigurowa\u0107 aplikacj\u0119 <a href=\"https:\/\/developers.facebook.com\/docs\/apps\/register\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutaj<\/a>.<\/p>\n<p>Po zarejestrowaniu aplikacji skopiuj identyfikator aplikacji i klucz aplikacji, kt\u00f3rych potrzebujemy za chwil\u0119.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20729-6082209b36be8.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-20729-6082209b36be8.png\" alt=\"Jak wygenerowa\u0107 d\u0142ugowieczny token dost\u0119pu do Facebooka?\" ><\/a><\/p>\n<h3>Wygeneruj d\u0142ugowieczny token dost\u0119pu<\/h3>\n<p>Teraz mamy identyfikator aplikacji i tajne klucze aplikacji. Utw\u00f3rz plik o nazwie <code>config.php<\/code>i dodaj nasze klucze za pomoc\u0105 metody PHP define().<\/p>\n<p><strong>config.php<\/strong><\/p>\n<pre><code>&lt;?php\ndefine('CLIENT_ID', 'YOUR_CLIENT_ID');\ndefine('CLIENT_SECRET', 'YOUR_CLIENT_SECRET');\ndefine('REDIRECT_URL', 'YOUR_SITE_URL\/redirect.php');\n?&gt;<\/code><\/pre>\n<p>W powy\u017cszym kodzie okre\u015blili\u015bmy REDIRECT_URL na YOUR_SITE_URL\/redirect.php. Wi\u0119c utw\u00f3rz plik <code>redirect.php<\/code>. To jest plik, w kt\u00f3rym napiszemy kod do generowania tokena Long-Lived.<\/p>\n<p>Ale wcze\u015bniej musimy utworzy\u0107 adres URL logowania, kt\u00f3ry przekieruje u\u017cytkownika do strony logowania na Facebooku, aby autoryzowa\u0107 Twoj\u0105 aplikacj\u0119. Utw\u00f3rz plik <code>login.php<\/code>i dodaj do niego poni\u017cszy kod.<\/p>\n<p><strong>login.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"config.php\";\necho \"&lt;a href='https:\/\/www.facebook.com\/v2.10\/dialog\/oauth?client_id=\". CLIENT_ID. \"&amp;redirect_uri=\". REDIRECT_URL. \"'&gt;Login To Facebook&lt;\/a&gt;\";\n?&gt;<\/code><\/pre>\n<p>Gdy u\u017cytkownik kliknie link do logowania do Facebooka, zostanie przekierowany do strony logowania na Facebooku. Gdy zezwol\u0105 na dost\u0119p do Twojej aplikacji, u\u017cytkownik przekieruje do adresu URL TWOJEJ_SITE_URL\/redirect.php. W zamian otrzymujemy kod jako parametr GET z Facebooka. Korzystaj\u0105c z tej warto\u015bci kodu, generujemy pierwszy token dost\u0119pu o kr\u00f3tkim czasie \u017cycia. A nast\u0119pnie za pomoc\u0105 tego kr\u00f3tkotrwa\u0142ego tokena generujemy d\u0142ugowieczny token dost\u0119pu.<\/p>\n<p>Upewnij si\u0119, \u017ce masz w\u0142\u0105czone rozszerzenie CURL na swoim serwerze, w przeciwnym razie nasz kod nie b\u0119dzie dzia\u0142a\u0142 zgodnie z oczekiwaniami.<\/p>\n<p><strong>przekierowanie.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"config.php\";\n\u00a0\nif (isset($_GET['code']) &amp;&amp; !empty($_GET['code'])) {\n\u00a0\u00a0\u00a0\u00a0$post = ['client_id'=&gt; CLIENT_ID, \"redirect_uri\" =&gt; REDIRECT_URL, \"client_secret\" =&gt; CLIENT_SECRET, 'code' =&gt; $_GET['code']];\n\u00a0\u00a0\u00a0\u00a0$arr_result = getFBResponse($post);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/generate long-lived access token\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_result-&gt;access_token)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$post1 = ['grant_type' =&gt; 'fb_exchange_token', 'client_id'=&gt; CLIENT_ID, \"client_secret\" =&gt; CLIENT_SECRET, 'fb_exchange_token' =&gt; $arr_result-&gt;access_token ];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$arr_result1 = getFBResponse($post1);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Long Lived Token: \". $arr_result1-&gt;access_token;\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nfunction getFBResponse($arr_post = []) {\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_URL,'https:\/\/graph.facebook.com\/v2.10\/oauth\/access_token');\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arr_post));\n\u00a0\u00a0\u00a0\u00a0$response = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0return json_decode($response);\n}\n?&gt;<\/code><\/pre>\n<p>Ot\u00f3\u017c \u200b\u200bto! Mamy nadziej\u0119, \u017ce zapozna\u0142e\u015b si\u0119 z procesem generowania tokena dost\u0119pu Long-Live dla Facebook API. Podziel si\u0119 swoimi przemy\u015bleniami w sekcji komentarzy poni\u017cej.<\/p>\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>Czy chcesz wygenerowa\u0107 token dost\u0119pu o d\u0142ugiej \u017cywotno\u015bci dla Facebooka? W tym artykule dowiemy si\u0119, jak stworzy\u0107 token dost\u0119pu o d\u0142ugiej \u017cywotno\u015bci za pomoc\u0105 PHP i CURL.<\/p>\n","protected":false},"author":1,"featured_media":20730,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-27261","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\/27261","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=27261"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27261\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/20730"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=27261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=27261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=27261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}