Facebook PHP SDKでユーザーを認証する際に問題があります。Facebook認証が成功した後にユーザーIDを取得できません。
基本的に、ユーザーがまだ認証されていない場合は、「facebookでログイン」ボタンを表示します。それ以外の場合は、ユーザー名を表示します。コードは次のとおりです。
require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'XXX',
'secret' => 'XXX',
'cookie' => true
));
$userId = $facebook->getUser();
var_dump($userId);
if ($userId) {
$userInfo = $facebook->api('/' . $userId);
echo "Welcome, {$userInfo['name']}";
} else {
echo '<a href="' . $facebook->getLoginUrl() . '">' .
'<img src="images/icon_facebook_login.png" alt="Login with Facebook" /></a>';
}
問題はいつも$facebook->getUser()
から0になります。私はbase_facebook.php
のコードを見て、その関数を処理している間に返信URLに要求パラメータのsigned_request
が必要です。 Facebookの返品URLに表示される唯一のパラメータはcode
とstate
です。
私はどんなアイデアを台無しにしたでしょうか?前もって感謝します。
EDIT:ogi
によって示唆されるように私はgraph.facebook.com/oauth/access_token
にcode
のparamと手作りの要求をしたと私はaccess_token
を受け取りました。さて、残っている唯一の質問は、PHP SDKを通してこれを達成する方法です。
回答ありがとうございましたori。私は 'access_token'を受け取ります。今、PHP SDKを通してこのリクエストを行う方法は? –