Token de acceso de Facebook para páginas

115

Tengo una página de Facebook de la que quiero obtener algunas cosas. Lo primero son los feeds y, por lo que leí, son públicos (sin necesidad de access_token). Pero también quiero obtener los eventos ... y no son públicos y necesitan el access_token.

No quiero que el usuario inicie sesión en Facebook ni nada de eso. Solo quiero enviar todos los datos que pueda de esta única página. Por eso ya descarté muchos ejemplos que encontré aquí y el de https://developers.facebook.com/blog/post/500/ , porque quieren que el usuario inicie sesión o requiera alguna acción del usuario. No estoy interesado.

Lo que quiero es que mi aplicación de Facebook tenga autorización completa y access_token para enviar los datos de esta página de Facebook de la que soy propietario (administrador). es posible? Ya probé muchas cosas pero nada parece funcionar.

Intenté hacer clic en esto: https://www.facebook.com/dialog/oauth?client_id=150635421702954&redirect_uri=http://MY_URL/&scope=manage_pages&response_type=token&fields=access_token - cambiando MY_URL a mi sitio y solicita autorización para editar cada página que tengo. Incluso no siendo lo que quiero, hice clic pero no tuve access_token a cambio ...

bsides
fuente
Para obtener eventos, hago esto ahora (el access_token caduca mucho): 1 - Obtener un token del Graph Explorer 2 - Pegarlo en mi código a continuación: var authToken = 'THE_CODE_I_GOT'; var feedQuery = 'graph.facebook.com/MY_PAGE_ID/feed'; var feedURL = feedQuery +'?access_token='+ authToken +'&callback=?'; $.getJSON(feedURL,function(data){ var d = data.data; para (i = 0; i <d.length; i ++) {d [i] .message? $ ("# lista"). append ('<li>' + d [i] .message + '</li>'): ''; // muchas otras cosas, lo tienes}}); `
además del
1
Puede obtener un token permanente: stackoverflow.com/questions/17197970/…
Josh

Respuestas:

269
  1. Ve a la Explorador de API Graph
  2. Elija su aplicación en el menú desplegable
  3. Haga clic en "Obtener token de acceso"
  4. Elija el manage_pagespermiso (es posible que también necesite el user_eventspermiso, no estoy seguro)
  5. Ahora acceda al me/accounts conexión y copie elaccess_token
  6. Haga clic en la identificación de su página
  7. Agregar la página access_token a los campos GET
  8. Llame a la conexión que desee (por ejemplo: PAGE_ID/events)
ifaour
fuente
1
Al hacer esto, puedo llamar a conexiones en todas mis páginas usando un token de página de solo una de ellas. ¿No está mal esto? ¿Hay alguna forma de obtener un token para una sola página específica que no funciona en las otras páginas?
andresp
112
He escalado montañas y nado océanos, solo busco esta respuesta. Gracias.
IMB
15
Este proceso ya no funciona ya que el token de acceso generado expira cuando cierra la sesión por cualquier motivo.
coneybeare
1
@coneybeare, consulte este documento sobre cómo extender el token de acceso
ifaour
1
Sigo obteniendo un resultado vacío. ¿Hace alguna diferencia si es una página de aplicación?
Máximo
16

Vea aquí si desea otorgar a una aplicación de Facebook acceso permanente a una página (incluso cuando usted o el propietario de la aplicación están desconectados):

http://developers.facebook.com/docs/opengraph/using-app-tokens/

"Un token de acceso a la aplicación no caduca a menos que actualice el secreto de la aplicación a través de la configuración de la aplicación".

Robin Layfield
fuente
6
Esto no ayuda a obtener eventos para una página restringida.
Sinan
2
¿Es eso todavía cierto?
jeromej
5

La documentación para esto es buena, si no un poco difícil de encontrar.

API de gráficos de Facebook: tokens de página

Después de inicializar el fbgraph del nodo , puede ejecutar:

var facebookAccountID = yourAccountIdHere 

graph
.setOptions(options)
.get(facebookAccountId + "/accounts", function(err, res) {
  console.log(res); 
});

y reciba una respuesta JSON con el token que desea obtener, ubicado en:

res.data[0].access_token
Antonio
fuente