2

私はこれに似た問題について何百もの答えを調べましたが、役立つと思われるものは何も見つかりません。

PHP SDKの最新バージョンと、getLoginUrl()から生成されたリンクを持つFacebookへのログインボタンを実行しています。

開発用ラップトップで実行し、アプリケーション開発者としてログインすると、リダイレクトURLに戻ります(getLoginUrl()を呼び出すときのコールバックURLと、アプリケーション設定で設定されたURLはまったく同じです)次に、getUser呼び出しを実行します。これらの状況で機能します。

同じネットワークでiPhoneを使用して同じプロセスを試した場合、Facebookで同じユーザーとしてログインするとgetUser()は0を返します。Facebookでログインしようとしている他のユーザーについても同じことを行います。

サンドボックスモードは無効になっています。私のアプリドメインは正しく設定されているようです。

次に何をすべきか本当にわかりません。

4

2 に答える 2

1

皆さんの回答に感謝します-問題は、あるページからリクエストを送信し、別のページにリダイレクトしていたことが判明しました。これは facebook を混乱させているようです (呼び出し元のページにリダイレクトされるだけだと思います)。とにかく問題は解決しましたが、ご回答いただきありがとうございます。

于 2012-12-28T12:38:31.717 に答える
0

まず、スクリプトでセッションを維持していることを確認してください。

session_start();

あなたのphpファイルの先頭にあります。

次に、このようなものを使用して fb ユーザーがいるかどうかをテストし、そうでない場合は oauth にリダイレクトします。oauth は、期限切れになっていることによって既に承認されている場合はトークンを更新します。

require_once('facebook/fb.inc');

session_start();

if (!$fbUser) {
    $loginUrl = $facebook->getLoginUrl(
        array(
            'scope' => 'email,publish_stream,user_location',
            'redirect_uri' => 'http://scubadivinglog.org/php/fblink.php'
        )
    );
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}

お役に立てれば。お知らせください。そうでない場合は、使用しているコードを投稿してください。

于 2012-11-21T17:52:22.317 に答える