このフォーラムのすべてのスレッドを読みましたが、解決策が見つかりません..
私は facebook による最後の Php SDK を使用しています: v3.2.2 。
だから私はこれを使用しました:
//start fb
$facebook = new \Facebook(array(
'appId' => $fb_app_id,
'secret' => $fb_app_secret,
'cookie' => true,
));
// get id user-fb
$fbUser = $facebook->getUser();
if ($fbUser) {
try {
$fbUserProfile = $facebook->api('/me'); // take user-infos
$friends = $facebook->api('/me/friends'); // take his friend
} catch (FacebookApiException $e) {
error_log($e);
$fbUser = null;
}
}
if ($fbUser) {
$logoutUrl = $facebook->getLogoutUrl(array( 'next' => ('my-url') ));
} else {
$loginUrl = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 0,
'scope' => 'email,offline_access,publish_actions',
'req_perms' => 'publish_stream,email',
'redirect_uri' => 'my-redirect-url'
));
}
何が悪いのかわかりません..テストすると、初めてloginUrlをクリックして認証を取得できます。しかし、もう一度 getUser を試行すると、関数$facebook->getUser() return 0
が再び呼び出され、loginUrl が再び取得されますが、リンクをクリックすると、コールバック URL にリダイレクトされるだけです。
アプリケーション facebook に特別なパラメータが必要かどうかはわかりません。私の app_id と app_secret は 100% 確実です。