Domanda

Ad esempio, ecco una "pagina":

http://www.facebook.com/facebook

Quella pagina ha un feed RSS (che vorrei usare, idealmente), ma a) IT browser-sniffs significato che ho bisogno di finisca l'utente-agente da uno script per prenderlo - e che si sente davvero fragile B ) La qualità dei dati restituita è davvero scarsa.

Posso usare l'API del grafico per recuperare gli stessi dati? Questo URL:

https://graph.facebook.com/facebook/feed

implica che io possa , e Json va bene per me, anche se sto andando a prendendo questo da uno script PHP piuttosto che da un lato client. Tuttavia, quando provo quell'URL per la mia pagina reale, ottengo quanto segue:

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

Non capisco perché è richiesto un token di accesso per la mia pagina, mentre altre pagine sono "più pubbliche" - è una configurazione sulla pagina da qualche parte? In caso contrario, qual è il modo migliore per ottenere la chiave di accesso - nota che questo è non uno script interattivo che chiede il proprietario della pagina di autenticare.

È stato utile?

Soluzione

Se cerco di accedere all'URL tramite Curl, funziona bene per me in PHP.

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

var_dump($facebookFeed);
.

Usando questa funzione 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;
}
.

Altri suggerimenti

Aggiornamento: A partire dal 3 giugno 2011, è richiesta un'applicazione valida o un utente_token è richiesta con tutte le richieste API.

Per maggiori informazioni: http://developers.facebook.com/blog/post/509/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top