Pregunta

Por ejemplo, aquí hay una 'Página':

http://www.facebook.com/facebook

Esa página tiene un feed RSS (que me gustaría usar, idealmente), pero a) el navegador, Sniffs significa que necesito falsificar al agente de usuario de un script para buscarlo, y eso se siente realmente quebradizo B ) La calidad de los datos devueltos es realmente pobre.

¿Puedo usar la API del gráfico para buscar los mismos datos? Esta URL:

https://phap.facebook.com/facebook/feed

implica que puede , y JSON está bien para mí, aunque estoy buscando esto desde un script PHP en lugar de lado del cliente. Sin embargo, cuando intento esa URL para mi página real, obtengo lo siguiente:

{
    "error": {
        "type": "OAuthAccessTokenException",
        "message": "An access token is required to request this resource."
    }
}

No entiendo por qué se requiere un token de acceso para mi página, mientras que otras páginas son "más públicas", ¿es una configuración en la página en algún lugar? Si no, ¿cuál es la mejor manera de obtener la clave de acceso?

¿Fue útil?

Solución

Si intento acceder a la URL a través de CURL, funciona bien para mí en PHP.

$curlResponse = http('https://graph.facebook.com/facebook/feed');
$facebookFeed = json_decode($curlResponse['data'], true);

var_dump($facebookFeed);

Usando esta función PHP:

function http($url) {
  $timeout = 30;
  $connectTimeout = 30;
  $sslVerifyPeer = false;

  $response = array();
  $ci       = curl_init();

  /* Curl settings */
  curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $connectTimeout);
  curl_setopt($ci, CURLOPT_TIMEOUT, $timeout);
  curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
  curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $sslVerifyPeer);    
  curl_setopt($ci, CURLOPT_URL, $url);

  $response['http_code'] = curl_getinfo($ci, CURLINFO_HTTP_CODE);
  $response['api_call']  = $url;
  $response['data']      = curl_exec($ci);

  curl_close ($ci);

  return $response;
}

Otros consejos

Actualización: A partir del 3 de junio de 2011, se requiere una aplicación válida o un usuario de usuario con todas las solicitudes de API.

Para más información: http://developers.facebook.com/blog/post/509/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top