Pergunta

Por exemplo, aqui está uma 'página':

http://www.facebook.com/facebook

Essa página tem um feed RSS (que eu gostaria de usar, de preferência), mas uma) é o navegador faz sentido eu preciso falso agente do usuário a partir de um script para buscá-la - e que se sente muito frágil b) a qualidade dos dados retornados é muito ruim.

Posso usar a api gráfica para obter os mesmos dados?Esta URL:

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

implica que eu pode, e json é bom para mim, embora eu estou buscando isso a partir de um script PHP em vez de no lado do cliente.No entanto, quando eu tentar que a URL da minha página, eu recebo a seguinte:

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

Eu não entendo por que um token de acesso é necessário para a minha página, enquanto as outras páginas são "mais público" - é que uma configuração na página em algum lugar?Se não, qual é a melhor maneira de obter a chave de acesso - note-se que esta é não um script interativo solicitando que o proprietário da página para autenticar.

Foi útil?

Solução

Se eu tentar acessar a URL via CURL, OK funciona para mim em PHP.

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

var_dump($facebookFeed);

Usando esta função em 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;
}

Outras dicas

Atualização: Em junho 3, 2011, válido aplicativo ou usuário access_token é necessário com todos os pedidos de API.

Para mais informações: http://developers.facebook.com/blog/post/509/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top