Estoy usando la api gráfica.
Tengo un usuario que ha iniciado sesión y quiero obtener una lista de los ID de página de todas las páginas de las que el usuario es administrador.
¿Hay alguna forma de hacer esto? Los documentos son bastante malos y circulares.
Respuestas:
Es simple con Graph API. Pasos:
manage_pages
permiso del usuario (permisos extendidos).Puede probar este procedimiento en el explorador de gráficos -> Simplemente haga clic en el botón 'Obtener token de acceso' - > en 'Permiso extendido' marque 'administrar_páginas' y envíelo. Le dará el JSON de detalles de la página de administración.
fuente
Lo resolví con algo de FQL:
FB.api({method: 'fql.multiquery', access_token: <access_token>, queries: { query1: 'select page_id from page_admin where uid = ' + <uid>, query2: 'select page_id, name, page_url from page where page_id in (select page_id from #query1)' } }, function(queries){ var pages = queries[1].fql_result_set; }}
fuente
Puede llamar
FB.api(/me/accounts)
si no desea utilizar FQL.'cuentas' es una conexión del objeto Usuario. Consulte la documentación para esto @ http://developers.facebook.com/docs/reference/api/user
Por supuesto, con Facebook, siempre hay una trampa. En este momento, este método devolverá no solo las páginas de las que el usuario es administrador, sino también las aplicaciones que ha instalado. Estoy casi seguro de que este NO es el comportamiento previsto; creo recordar haber usado esto hace unos meses y solo obtener una lista de páginas. La documentación tampoco menciona aplicaciones en esta lista.
Sin embargo, este es un problema fácil de resolver: Facebook devuelve el nombre, la categoría y la identificación de cada elemento de la lista, y cada aplicación tiene una categoría de "Aplicación". Simplemente me aseguro de enumerar solo los elementos cuya categoría no sea 'Aplicación'.
fuente
ir a esta dirección
Simplemente haga clic en obtener token de acceso y vaya a Permiso extendido
Marque la casilla de verificación manage_pages
y haga clic en Obtener token de acceso
Entonces bajo FQL escribe esto
Haga clic en Enviar. y obtendrá todas las listas de páginas que iniciaron sesión en el administrador de usuarios
fuente
me/accounts
admita eltype
parámetro de consulta?Solicita el permiso con el SDK de JavaScript al iniciar sesión
FB.login(function(){}, {perms:'manage_pages'});
y luego, una vez que inicien sesión, puede recuperar las páginas (y aplicaciones) de la siguiente manera:
FB.api('/me/accounts', function(response){ console.log(response); })
fuente
{perms: 'manage_pages'}
y{scope: 'manage_pages'}
?También puede usar el permiso "pages_show_list", si solo desea la lista de páginas de Facebook de las que el usuario es administrador.
El permiso "manage_pages" le pedirá al usuario permiso para administrar sus páginas, lo que puede ser demasiado intrusivo dependiendo de para qué lo necesite.
fuente
Tenga en cuenta que su solución devuelve tanto Páginas como Aplicaciones . Si desea estrictamente las páginas, puede usar FQL Multiquery con una cláusula "Tipo no es igual" como esta:
fuente
Permiso
acción
fuente
fuente
Con la nueva API GRAPH v3 con Javascript, use el campo 'tareas' en lugar del campo 'permisos'.
En lugar de buscar 'ADMINISTER' dentro de la matriz, busque 'ADMINISTRAR'.
Información completa aquí: https://developers.facebook.com/docs/pages/access-tokens
fuente