0

公式のphpSDKを使用してグラフAPIを介してユーザーを認証しようとすると、問題が発生します。

地獄のように単純に見えますが、それを機能させることができず、getUser()はnullを返し続けます。

これが私のコードを最も単純な形に縮小したものです:

$facebook = new Facebook(array(
      'appId'  => 'ID',
      'secret' => 'SECRET',
      'cookie' => true
    ));

    $user = $facebook->getUser();

    if (!$user):
       $params = array('scope' => 'email','redirect_uri' => 'http://myredirecturi.com');
     ?>
        <a href=" <? echo $facebook->getLoginUrl($params); ?>">Login</a>
    <? endif; ?>

したがって、ログインボタンをクリックすると、Facebookにアクセスし、リダイレクトURLに到達しました。

「code」と「state」というGETデータもあるので見栄えは良いですが、「signed_request」の値はありません。

最後に、$ facebook-> getUser()はnullを返し続けます。

ここで何が問題になっていますか?

-Facebookオブジェクトは適切に初期化されていますか?(「cookie」設定をtrueに設定する必要がありますか?)

-redirect_uriもhttpsuriではありません。それは重要ですか?

-Facebookアプリの設定で何かを探す必要がありますか?

ありがとう !

4

2 に答える 2

2

それがあなたにとって同じ問題であるかどうかはわかりませんが、私にとってはうまくいきました。基本的に、ユーザーがアプリを承認するまで、Uid を取得できません。そのため、アプリにログインしていても、承認するまでアクセスできません。その後、UID が返されます。facebook->getUser() は 0 を返します

于 2012-09-21T19:24:26.890 に答える
1

他の誰かがまだこの問題を抱えている場合は、アプリがまだサンドボックス モードになっていないことを確認してください:)

于 2013-07-25T14:52:22.267 に答える