0

次の URL にアクセスしました: http://developers.facebook.com/docs/reference/php/facebook-api/ 最初の例をサーバーにコピーし、自分のアプリの appID とシークレットを置き換えました。ページにアクセスすると、コードに見られるように「ログインしてください」と表示され、そのボタンを押すとアプリがリロードされ、同じことを言い続けます。すでに Facebook にログインしていますが、ログインを押しても何も起こりません。

誰かが問題が何であるか知っているかどうか疑問に思っていましたか?index.php が src と呼ばれるフォルダーに SDK ファイルがあるので、「src/facebook.php」へのパスを編集しましたか?


編集 - 次のエラーが表示されます (実際のファイル パスを置き換えました)。プロキシと関係がある可能性があることがわかりましたか?

エラーが見つかりました:

FacebookApiException Object
(
    [result:protected] => Array
        (
            [error_code] => 7
            [error] => Array
                (
                    [message] => couldn't connect to host
                    [type] => CurlException
                )

        )

    [message:protected] => couldn't connect to host
    [string:Exception:private] => 
    [code:protected] => 7
    [file:protected] => filepath/src/base_facebook.php
    [line:protected] => 977
    [trace:Exception:private] => Array
4

2 に答える 2

1

これが問題だと思います:

catch(FacebookApiException $e) {
    // If the user is logged out, you can have a 
    // user ID even though the access token is invalid.
    // In this case, we'll get an exception, so we'll
    // just ask the user to login again here.
    $login_url = $facebook->getLoginUrl(); 
    echo 'Please <a href="' . $login_url . '">login.</a>';
    error_log($e->getType());
    error_log($e->getMessage());
  }  

Facebookのデモはこれを行い、本当に面倒です. 発生した例外はユーザー トークンの期限切れが原因であると想定していますが、おそらく入力ミスやその他のエラーが原因です。

したがって、これを単に $e の内容を表示するように変更します。

 catch(FacebookApiException $e) {
    echo 'Error found:';
    echo '<br />Type: '.$e->getType();
    echo '<br />Message: '.$e->getMessage();
    exit;  
 }  

そうすれば、少なくともエラーの内容を簡単に確認できます。動作するようになったら、必ず元に戻してください。

以下を使用すると、さらに多くの情報を取得できます。

 catch(FacebookApiException $e) {
    echo 'Error found:';
    echo '<br /><pre>';
    print_r($e);
    echo '</pre>';
    exit;  
 }  

これにより、非常に類似したデータのページが生成されます。私は通常、必要なものを一番上に見つけます。

于 2013-02-06T23:57:34.140 に答える
0

私はFiddlerを使用して、どのビットがネットワーク上を通過しているか (または、ビットがまったくネットワーク上を通過しているか) を確認します。

于 2013-02-06T23:39:13.510 に答える