0

問題を解決するためにあなたの助けが必要です。トークンを取得した後、ユーザーに関するデータを取得しようとすると、このエラーが発生します。

A PHP Error was encountered

Severity: Warning

Message: file_get_contents(https://graph.facebook.com/me?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

これを実行するコードは次のとおりです。

 $url = "https://graph.facebook.com/me?access_token=".$token;
 $dados = @json_decode(file_get_contents($url));

この問題を解決するにはどうすればよいですか? なぜこれが起こるのですか?

私はたくさん検索しましたが、解決策が見つかりませんでした。誰か助けてください。

ありがとう。

4

2 に答える 2

0

PHP SDK の使用をお勧めします: https://github.com/facebook/facebook-php-sdk

「使用法」までスクロールすると、正しいログイン処理を含むサンプルコードもあります。これにより、アクセス トークンについて考える必要がなくなります。すべてバックグラウンドで行われます。また、アクセス トークンの有効期限は最大 2 時間です。延長する場合は、PHP SDK の「setExtendedAccessToken」関数を使用して、最大 60 日間まで延長してください。

于 2013-01-22T19:07:33.913 に答える
0

トークンの urlencode() を試して、その値を file_get_contents() に渡します。これはうまくいくかもしれません。

file_get_contents will only work if you have allow_url_fopen = 1 in your php.ini

上記のようなリモート ファイル アクセスには、PHP が提供するcURL関数の使用を検討してください。

function url_get_contents ($Url) {
    if (!function_exists('curl_init')){ 
        die('CURL is not installed!');
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $Url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get the code of request
    curl_close($ch);

    if($httpCode == 400) 
       return 'No donuts for you.';

    if($httpCode == 200) //is ok?
       return $output;


}
于 2013-01-23T05:52:22.523 に答える