Nunca he usado Facebook Graph API o OAuth. Simplemente estoy tratando de obtener un feed de una página pública de Facebook usando Graph API, pero requiere un token de acceso. No quiero molestar a los usuarios para iniciar sesión y permitir el acceso para obtener su token. Se podría usar un token de acceso a la aplicación de Facebook para obtener un feed público, pero estoy tratando de hacerlo completamente en Javascript, por lo que no puedo usar el secreto de la aplicación para hacerlo. Leí en alguna parte que un token de acceso a la aplicación de Facebook no caduca ni cambia a menos que restablezca el secreto manualmente. ¿Es esto cierto? ¿Sería seguro solo el código difícil en el token de acceso? Si no, ¿hay alguna forma de que pueda autenticar una aplicación para obtener el token sin tener que involucrar a un usuario? ¿Hay algún tipo de token de aplicación genérico que pueda usar?¿Se puede obtener un feed de página pública de Facebook usando la API Graph sin pedir permiso al usuario?
Respuesta
Si desea utilizar el avance de página (como su propio avance de página) en una aplicación para mostrarlo a otros. Solo usa tu propio access_token para obtenerlo.
PERO!, ya que no se considera una buena práctica, también puede iniciar sesión con la Página o Aplicación y usar access_token.
Para obtener más información, puede leer el official documentation on authentication
Si eres como yo sus clientes no quieren un plugin de Facebook Likebox estándar, que van a querer todo estilo y personalizado a su manera.
No necesita pasar todo el día dando vueltas a la documentación oficial preguntándose si algo de esto se aplica a usted por algo tan simple como este, es bastante fácil. La confusión surge porque supondrías que con todas estas claves e identificadores secretos tendrías que obtener permiso o autenticación de la página de Facebook desde la que querías extraer el feed; no es así. Todo lo que necesita es una aplicación válida y puede obtener el feed de cualquier página pública.
Configure su aplicación en Facebook y le dará una identificación de la aplicación y una clave de API. Obtenga la ID de perfil para el feed de página pública que desea, y eso es todo lo que necesita. Luego puede usar el siguiente código para recuperar el token de autenticación y luego usarlo para devolver los datos del feed como un objeto JSON.
<?php
function fetchUrl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
// You may need to add the line below
// curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
$feedData = curl_exec($ch);
curl_close($ch);
return $feedData;
}
$profile_id = "the_profile_id_of_the_page_you_want";
//App Info, needed for Auth
$app_id = "your_app_id_in_here";
$app_secret = "your_app_secret_in_here";
//Retrieve auth token
$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={$app_id}&client_secret={$app_secret}");
$json_object = fetchUrl("https://graph.facebook.com/{$profile_id}/feed?{$authToken}");
Gracias a una edición alguien sugirió Creo que este código proviene de here (parece familiar de todos modos :)) y hay algo más de información en los comentarios allí que pueden ayudar.
Puede analizar el objeto, aquí hay un código para hacerlo en PHP basado en este hilo;
Handling data in a PHP JSON Object
$feedarray = json_decode($json_object);
foreach ($feedarray->data as $feed_data)
{
echo "<h2>{$feed_data->name}</h2><br />";
echo "{$feed_data->message}<br /><br />";
}
Para averiguar lo que está a su disposición en el objeto JSON que puede dar salida a la URL en un navegador y copiar/pegar en esta útil herramienta de visualización JSON;
Cuando intento recuperar $ authToken recibo la respuesta: "Falta el parámetro redirect_uri". ¿Algunas ideas? –
¿Eso es lo que se devuelve cuando acaba de colocar la url de la parte authToken (sin llaves, reemplazando nombres de variables con sus claves) directamente en la barra de direcciones del navegador? – McNab
Disculpa, descubrí esto ...Puse tu ejemplo y la URL no tiene el '?' entre access_token y tipo. –
creo con el fin de hacer esto usted tiene que utilizar FQL no simplemente la API de gráficos. Esto es lo que estoy haciendo (sustituir PAGE_ID
con el ID de la página, mantenga las comillas):
SELECT post_id, created_time, type, message, attachment
FROM stream
WHERE source_id = 'PAGE_ID'
AND actor_id = source_id
https://s3.amazonaws.com/f.cl.ly/items/2G0q0y3Z2s32311U1s40/Screen%20Shot%202015-03-16%20at%2010.11.50.png –
En respuesta al mensaje de @Psyked y @James_David_Low, no se recomienda para usar FQL porque está en desuso
"... Hay dos API HTTP de bajo nivel que también se utilizan en Facebook para acceder al gráfico: FQL y la API heredada REST. Estas API contienen funciones similares y superpuestas, pero están en desuso".
Las nuevas características generalmente solo están disponibles en el Graph API. Para garantizar el futuro de su aplicación, debe utilizar Graph API en su aplicación si puede.
Eso no es cierto, FQL en sí mismo no está en desuso. Usarlo a través de RestAPI y algunas otras formas antiguas está obsoleto, pero _hacer_ consultas FQL _utilizando_ el punto final de Graph API __ absolutamente no está en desuso .__ – CBroe
Derecho de Diego, CBroe está equivocado: las API FQL y REST ya no están disponibles en v2.1: Anteriormente anunciado con la v2.0, las aplicaciones deben migrar a las llamadas a Graph API versionadas comenzando con v2.1. https: //developers.facebook.com/docs/apps/changelog – Prozi
Facebook token de acceso de aplicaciones no tiene fecha de vencimiento o cambia a menos que se restablece manualmente el secreto
Eso es correcto.
Los tokens de aplicación no caducan a menos que se restablezca el secreto de la aplicación. Los tokens de acceso a la aplicación son únicos para cada aplicación.
Desde feeds públicos toman alguna señal de acceso válido, tokens de aplicación se puede utilizar.
Vaya a https://developers.facebook.com/tools/access_token y no necesita un flujo. Entonces puedes codificarlo. En el momento que restableces el secreto, este método es nulo.
$access_token = '1111111111|2Cha_1-n5'
$graph_url = "https://graph.facebook.com/Boo/posts?access_token="
. $access_token;
$page_posts = json_decode(file_get_contents($graph_url), true);
iterar a través de las páginas
foreach($page_posts['data'] as $post){
$post_link = $post['actions'][0]['link'];
$page_id = $post['from']['id'];
$page_name = $post['from']['name'];
$message = ($post['message']) ? $post['message'] : " ";
$name = ($post['name']) ? $post['name'] : " ";
$story = ($post['story']) ? $post['story'] : " ";
$post_time = $post['updated_time'];
}
¡Esa pequeña URL de access_token es una joya! –
La respuesta aceptada no proporciona una forma dinámica de la recuperación de la profileId/pageId o incluso explicar cómo recuperarla . Mira mi answer/question. Desde mi experiencia, la respuesta aceptada también es incorrecta al requerir las llaves alrededor de app-id
y app-secret
. Obtuve un error cuando los incluí y funcionó con ellos.
No hay nada más simple que esto.
- 1. Obtenga feed de pared de una página pública de Facebook usando Graph API. ¿Es realmente este complejo?
- 2. ¿Cómo pedir resultados para Facebook Graph API?
- 3. Aplicación de Facebook sin pedir permiso al cargar
- 4. Usando la API Graph de Facebook, ¿cómo puedo obtener los contenidos de una página?
- 5. Facebook 'Friends.getAppUsers' usando Graph API
- 6. Facebook Graph API devuelve 'falso' aunque la publicación es pública
- 7. Cómo obtener el feed de todos los amigos de Facebook Graph API
- 8. Facebook Graph API: cómo obtener el país de usuario?
- 9. ¿Puedo obtener todas mis publicaciones (feed de perfil) usando Facebook Graph API explorer?
- 10. Facebook Graph API Group Files
- 11. 'Me gusta' en una página usando Facebook Graph API
- 12. Facebook Graph API analizar el feed JSON con PHP
- 13. Obtención de la edad de un usuario de Facebook con autenticación sin más solicitudes de permiso
- 14. Obtener estados páginas públicas que utilizan la API de Facebook Graph sin acceso Token
- 15. Facebook Graph API - obtener información amigos
- 16. Facebook Graph API + Facebook Pages
- 17. Facebook Graph API - Obtener ID de la página de Facebook URL
- 18. límite API de Facebook Graph duda
- 19. Facebook Graph Api json missing posts
- 20. Publicar en el muro del usuario sin estar conectado/conectado - Compartir en Facebook usando Graph API
- 21. ¿Cómo puedo obtener la lista de "amigos cercanos" de un usuario de Facebook, utilizando Graph API?
- 22. Facebook Graph API: Obtener fecha de joinin
- 23. buscando amigos usando Facebook graph api
- 24. Publicaciones de la página de Facebook feed
- 25. ¿Cuál es la diferencia entre feed, publicaciones y estados en Facebook Graph API?
- 26. Administrar las pestañas de la página de Facebook a través de Open Graph API?
- 27. Cómo compartir la publicación de alguien usando Facebook Graph API
- 28. Cómo obtener la página de facebook rss feed (todos)
- 29. Obtener el nombre de usuario de la API Graph de Facebook
- 30. Facebook Graph API: Get user_location
si pudiera hacer ese truco entonces FB no sería seguro, ¿verdad? ;) – alfasin
Estoy tratando de leer la información que es pública, para empezar. Sin publicaciones, solo lectura. Escuché que era posible con el sistema anterior. editar: 'es' que se accede a la API de la página pública de la alimentación sin un token – xtkoeller
Un token de página se puede utilizar para hacer eso, pero no puedo decir qué tan seguro es exponerlo a frontend. –