{"id":27272,"date":"2021-05-06T19:54:00","date_gmt":"2021-05-06T16:54:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27272"},"modified":"2021-10-17T17:27:03","modified_gmt":"2021-10-17T14:27:03","slug":"como-generar-un-token-de-acceso-de-larga-duracion-de-facebook","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/como-generar-un-token-de-acceso-de-larga-duracion-de-facebook\/","title":{"rendered":"C\u00f3mo generar un token de acceso de larga duraci\u00f3n de Facebook"},"content":{"rendered":"<p>\u00bfAlguna vez te has encontrado con tareas de API? Entonces, probablemente hayas o\u00eddo hablar del &#8216;Token de acceso&#8217;. El token de acceso es un tipo de token de identidad que los sitios web sociales (como Facebook) utilizan para realizar operaciones en nombre de un usuario.<\/p>\n<p>En otras palabras, una aplicaci\u00f3n con un token de acceso v\u00e1lido puede buscar su lista de amigos, publicar en su muro, obtener sus datos b\u00e1sicos como correo electr\u00f3nico, fecha de nacimiento, etc. Por supuesto, debe permitir el permiso para todos esos accesos. Sin su permiso, el token de acceso no puede acceder a la informaci\u00f3n de los usuarios.<\/p>\n<p>Cuando se habla de la API de Facebook, su API proporciona 2 tipos de tokens: tokens de acceso de corta duraci\u00f3n y de larga duraci\u00f3n.<\/p>\n<p>La ficha de corta duraci\u00f3n tiene un breve lapso de tiempo. Eso significa que no puede realizar llamadas a la API despu\u00e9s de que expire el token. Obtendr\u00e1 la respuesta no autorizada una vez que expire el token. Cada llamada a la API requiere un token de acceso v\u00e1lido como par\u00e1metro, luego solo ellos env\u00edan una respuesta.<\/p>\n<p>Una vez que el token expir\u00f3, debe pedirle al usuario que vuelva a realizar el proceso de inicio de sesi\u00f3n utilizando su aplicaci\u00f3n.<\/p>\n<p>Eso no tiene sentido. Es como hacer un proceso repetido que al usuario no le gusta en realidad.<\/p>\n<p>Aqu\u00ed es donde deber\u00edamos usar el concepto de <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\">token de acceso<\/a> de <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\">larga duraci\u00f3n de Facebook<\/a>. Una ficha de larga duraci\u00f3n suele durar unos 60 d\u00edas. Y es mucho mejor que usar tokens de corta duraci\u00f3n.<\/p>\n<p>Dicho esto, veamos c\u00f3mo generar un token de acceso de larga duraci\u00f3n de Facebook.<\/p>\n<h3>Registrar una aplicaci\u00f3n<\/h3>\n<p>Para comenzar, primero debe registrar una aplicaci\u00f3n en Facebook Developers. Obtendr\u00e1 una gu\u00eda paso a paso sobre c\u00f3mo registrarse y configurar una aplicaci\u00f3n <a href=\"https:\/\/developers.facebook.com\/docs\/apps\/register\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqu\u00ed<\/a>.<\/p>\n<p>Una vez que haya registrado la aplicaci\u00f3n, copie la identificaci\u00f3n de la aplicaci\u00f3n y el secreto de la aplicaci\u00f3n que requerimos en un momento.<\/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=\"C\u00f3mo generar un token de acceso de larga duraci\u00f3n de Facebook\" ><\/a><\/p>\n<h3>Genere un token de acceso de larga duraci\u00f3n<\/h3>\n<p>Ahora, tenemos la identificaci\u00f3n de la aplicaci\u00f3n y las claves secretas de la aplicaci\u00f3n. Cree un archivo llamado <code>config.php<\/code>y agregue nuestras claves usando el m\u00e9todo 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>En el c\u00f3digo anterior, especificamos REDIRECT_URL a YOUR_SITE_URL \/ redirect.php. Entonces, crea el archivo <code>redirect.php<\/code>. Este es el archivo donde escribiremos el c\u00f3digo para generar un token de larga duraci\u00f3n.<\/p>\n<p>Pero antes de eso, necesitamos crear una URL de inicio de sesi\u00f3n que redirija al usuario a la p\u00e1gina de inicio de sesi\u00f3n de Facebook para autorizar su aplicaci\u00f3n. Cree un archivo <code>login.php<\/code>y agregue el siguiente c\u00f3digo en \u00e9l.<\/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>Cuando un usuario hace clic en el enlace para Iniciar sesi\u00f3n en Facebook, lo redireccionar\u00e1 a la p\u00e1gina de inicio de sesi\u00f3n de Facebook. Una vez que otorguen permiso a su aplicaci\u00f3n, el usuario lo redireccionar\u00e1 a YOUR_SITE_URL \/ redirect.php. A cambio, obtenemos un c\u00f3digo como par\u00e1metro GET de Facebook. Usando este valor de c\u00f3digo, generamos un primer token de acceso de corta duraci\u00f3n. Y luego, a trav\u00e9s de este token de corta duraci\u00f3n, generamos un token de acceso de larga duraci\u00f3n.<\/p>\n<p>Aseg\u00farese de tener la extensi\u00f3n CURL habilitada en su servidor; de lo contrario, nuestro c\u00f3digo no funcionar\u00e1 como se esperaba.<\/p>\n<p><strong>redirect.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>\u00a1Eso es! Esperamos que conozca el proceso de generaci\u00f3n de un token de acceso de larga duraci\u00f3n para la API de Facebook. Comparta sus pensamientos en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfEst\u00e1 buscando generar un token de acceso de larga duraci\u00f3n para Facebook? En este art\u00edculo, estudiamos c\u00f3mo crear un token de acceso de larga duraci\u00f3n a trav\u00e9s de PHP y 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":[271],"tags":[849],"class_list":["post-27272","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27272"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27272\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/20730"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}