page obtener developers app facebook facebook-graph-api facebook-access-token

obtener - page access token facebook



No se puede obtener un token de acceso a largo plazo mediante la API de gráfico de Facebook (4)

¡Así que pensé en volver a ver esto y proporcionar la documentación que escribí que espero que ayude a otra persona a que esto suceda!

UNO . Crear aplicación

Cree una aplicación asociada con el usuario de la página a la que desea tener acceso.

DOS . Obtener piezas de información requeridas

Después de crear una aplicación, deberíamos tener dos piezas clave de información:

ID de la aplicación: AAAAA (debe tener alrededor de ~ 15 caracteres de longitud)

Secreto de la aplicación: BBBBB (debe tener alrededor de ~ 32 caracteres)

Con estos, vaya a https://developers.facebook.com/tools/explorer Asegúrese de seleccionar la aplicación correcta en el cuadro desplegable en la parte superior.

Haga clic en Obtener token de acceso y obtenga un token ''nuevo''.

Aquí deberá seleccionar los permisos adecuados para el propósito de su aplicación específica.

CCCCC (debe tener ~ 200 caracteres de longitud)

TRES Obtener token de larga vida (2 meses)

Luego debe tener la información necesaria para ejecutar la consulta para obtener un token a largo plazo (2 meses):

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id= {app-id} & client_secret = {app-secret} & fb_exchange_token = {token de vida corta}

Reemplaza {app-id}, {app-secret} y {short-life-token} con los tres bits de información que has tomado nota hasta ahora.

Debería obtener una solicitud como la siguiente:

https://graph.facebook.com/oauth/access_token?%20grant_type=fb_exchange_token&%20client_id=AAAAA&%20client_secret=BBBBB&%20fb_exchange_token=CCCCC

Coloque esta consulta en la barra de URL de un navegador de Internet. Debería obtener una respuesta en la ventana que se parece a lo siguiente:

access_token = DDDDD y expira = 5184000

DDDDD (debe tener ~ 200 caracteres de longitud)

Cuatro Test Token (Parte 1)

Si ingresa la parte resaltada en la entrada en el siguiente sitio de depuración:

https://developers.facebook.com/tools/debug/

Debe darle una caducidad de aproximadamente 2 meses.

CINCO . Obtener token de página no caducado

Ahora, tomando nota de este nuevo token de larga duración, lo utilizaremos para obtener un token que no caduque, a menos que la aplicación asociada se elimine del acceso de un usuario o se elimine. Usamos el nombre de la página o, preferiblemente, la identificación de la página al realizar la solicitud:

Puede obtener su ID de página de Facebook utilizando algo como http://findmyfacebookid.com/ Nos referiremos a su ID de página como EEEEE

https://graph.facebook.com/ {page-id} /? fields = access_token & access_token = {long-live-token}

Debería obtener una solicitud como la siguiente:

https://graph.facebook.com/EEEEE/?fields=access_token&access_token=DDDDD

Esto devolverá algo como lo siguiente: {"access_token": "FFFFF", "id": "131062838468"}

FFFFF (debe tener ~ 200 caracteres de longitud)

Seis Test Token (Parte 2)

Tome la parte resaltada e ingrésela en la página de depuración y debería obtener algo que muestre que el token nunca caduca y que ha tenido éxito en adquirir su token de página que nunca expirará.

Siete ¡Cinco altos!

Lo siento por la larga lista de cómo lograrlo, pero me parece mejor dar todo el proceso en lugar de solo un pequeño fragmento. Avíseme si lo encuentra útil o si tiene una mejor manera de lograr alguno de los pasos.

Soy nuevo en la integración de Facebook en los sitios web en los que estoy trabajando e intentando obtener un token de acceso a largo plazo siguiendo las instrucciones aquí: https://developers.facebook.com/docs/facebook-login/access-tokens/ Incluso cuando utilizo el Graph API Explorer aquí: https://developers.facebook.com/tools/explorer/ Ingreso lo siguiente y lo lleno con mi AppID y AppSecret y el token actual que obtengo cuando presiono Get Access Token ...

GET / oauth / access_token?
grant_type = fb_exchange_token &
client_id = {app-id} & client_secret = {app-secret} & fb_exchange_token = {token de vida corta}

Me sale la vuelta

{"error": "Respuesta inválida"}

¿Puede alguien elaborar más sobre lo que podría estar haciendo mal, o los pasos en mayor detalle que funcionan para usted al adquirir este token a largo plazo?

He intentado seguir lo que está sucediendo en este hilo . Tokens de acceso a páginas de Facebook: ¿caducan? Sin más éxito. Cualquier ayuda sería muy apreciada.

Gracias por tu tiempo y ayuda. Aclamaciones,

-Ryan


Facebook PHP SDK ya ha implementado un método para obtener un token de larga duración con token de corta duración, después de iniciar sesión correctamente y obtener el token de corta duración, llamadas simples

$result = $facebook->setExtendedAccessToken();

Si $ resultado es nulo, significa que recibió el token de acceso de larga duración.


No puede obtener el long-lived user token con Graph API Explorer . Tienes que hacer una solicitud GET para:

https://graph.facebook.com/oauth/access_token? grant_type=fb_exchange_token& client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token}

Puedes comprobarlo en el navegador.

Si necesita el page access token la page access token , puede tener un token que no caduca nunca . Verifique la respuesta aceptada aquí: ¿Cuáles son los pasos para obtener un token de larga duración para publicar en un fan page de Facebook desde un servidor?


lado del cliente

if (response.status === ''connected'') { { event.preventDefault(); FB.login(function (response) { if (response.authResponse) { var profileId = response.authResponse.userID; var accessToken = response.authResponse.accessToken; var e = response.authResponse.accessToken; document.getElementById(''token'').innerHTML = e; var profileName = ""; var pagesList = ""; var isPage = 0; var type = "fb"; $.ajax({ url: "WebService1.asmx/getlonToken", type: "POST", dataType: ''json'', data: ''{accessToken:"'' + accessToken + ''"}'', contentType: "application/json; charset=utf-8", async: true, success: function (response) { accessToken = response.d; document.getElementById(''status'').innerHTML = accessToken; }, error: function (e) { alert(''Error'' + e); } }); } }, { scope: ''user_about_me,friends_about_me,user_activities,friends_activities,user_birthday,friends_birthday,user_education_history,friends_education_history,user_events,friends_events,user_groups,friends_groups,user_hometown,friends_hometown,user_interests,friends_interests,user_likes,friends_likes,user_location,friends_location,user_notes,friends_notes,user_photos,friends_photos,user_relationships,friends_relationships,user_relationship_details,friends_relationship_details,user_status,friends_status,user_videos,friends_videos,user_website,friends_website,email,manage_pages,publish_stream,read_stream,read_page_mailboxes,read_insights, read_mailbox'' }); }

Lado del servidor

[WebMethod] public string getlonToken(string accessToken) { var fb = new FacebookClient(accessToken); dynamic result = fb.Get("oauth/access_token", new { client_id = 123, client_secret = "123fff45", grant_type = "fb_exchange_token", fb_exchange_token = accessToken, scope = "user_about_me,friends_about_me,user_activities,friends_activities,user_birthday,friends_birthday,user_checkins,friends_checkins,user_education_history,friends_education_history,user_events,friends_events,user_groups,friends_groups,user_hometown,friends_hometown,user_interests,friends_interests,user_likes,friends_likes,user_location,friends_location,user_notes,friends_notes,user_photos,friends_photos,user_relationships,friends_relationships,user_relationship_details,friends_relationship_details,user_religion_politics,friends_religion_politics,user_status,friends_status,user_videos,friends_videos,user_website,friends_website,email,manage_pages,publish_stream,read_stream,read_page_mailboxes,read_insights,ads_management" }); fb.AccessToken = (string)result["access_token"]; return fb.AccessToken; } }