5

たとえば、ここに「ページ」があります。

http://www.facebook.com/facebook

そのページにはRSSフィードがあります(理想的には使用したいです)が、a)ブラウザースニフは、スクリプトからユーザーエージェントを偽造してフェッチする必要があることを意味します-それは本当に壊れやすいと感じますb)品質返されるデータの割合は本当に貧弱です。

グラフAPIを使用して同じデータをフェッチできますか?このURL:

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

クライアント側ではなくPHPスクリプトからこれをフェッチしていますが、私はできることを意味し、jsonは私にとっては問題ありません。ただし、実際のページでそのURLを試してみると、次のようになります。

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

他のページが「より公開されている」のに、なぜ自分のページにアクセストークンが必要なのかわかりません。それは、ページの構成がどこかにあるのでしょうか。そうでない場合、アクセスキーを取得する最良の方法は何ですか?これはページ所有者に認証を求めるインタラクティブなスクリプトではないことに注意してください。

4

2 に答える 2

5

CURLを介してURLにアクセスしようとすると、PHPで問題なく機能します。

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

var_dump($facebookFeed);

この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;
}
于 2010-07-22T13:49:43.943 に答える
2

更新: 2011 年 6 月 3 日以降、すべての API リクエストで有効なアプリまたはユーザーの access_token が必要です。

詳細情報: http://developers.facebook.com/blog/post/509/

于 2011-06-06T18:28:26.370 に答える