Facebookでログインするための次のコードがあります。
// Include Facebook SDK
$this->facebook = new Facebook(array(
'appId' => 'APP ID',
'secret' => 'APP SECRET',
'cookie' => true
));
$uid = $this->facebook->getUser();
if($uid) {
try {
echo 'Done!';
} catch (FacebookApiException $e) {
echo $e;
error_log($e);
}
} else {
$loginUrl = $this->facebook->getLoginUrl(array(
'redirect_uri' => 'http://ogabrielsantos.com.br/dev/index.php?route=account/connect/facebook',
'scope' => 'user_birthday'
));
echo('<script>top.location.href = "' . $loginUrl . '";</script>');
}
更新 1
アプリを承認できますが、承認後、ログに記録されたユーザーを取得できず、リダイレクトすることはありません
http://ogabrielsantos.com.br/dev/index.php?route=account%2Fconnect%2Ffacebook&state=RANDOM STATE&code=RANDOM CODE#_=_
私が試してみました:
- アプリをサーバーに入れます。
- アプリの設定を確認します。すべてが正しいです。
- url が設定とコードで同じかどうかを確認します。大丈夫;
- 私の URL は正しく書かれています:
http://ogabrielsantos.com.br/dev/index.php?route=account/connect/facebook
; - アプリシークレットをリセットします。
何も機能しませんでした。
何が起こるかを確認できます:
http://ogabrielsantos.com.br/dev/index.php?route=account/connect/facebook
Facebook は、アプリがあなたのウェブサイトを取得することを許可するように求めますが、これは安全な情報です。
更新 2
次のコード:
$this->facebook = new Facebook(array(
'appId' => $this->connect->config->get('facebook_api_key'),
'secret' => $this->connect->config->get('facebook_app_secret'),
'cookie' => true
));
$uid = $this->facebook->getUser();
echo'<pre>';
print_r($this->facebook);
echo'</pre>';
exit;
戻り値:
Facebook Object
(
[sharedSessionID:protected] =>
[appId:protected] => APP ID
[appSecret:protected] => APP SECRET
[user:protected] => 0
[signedRequest:protected] =>
[state:protected] =>
[accessToken:protected] => APP ID|APP SECRET
[fileUploadSupport:protected] =>
[trustForwarded:protected] =>
)
私accessToken
は間違っていると思います.andをパイプラインセパレータで返しAPP ID
ますSECRET
.
更新 3:
今、私はコードを確認しますが、常に取得しますFatal error: Uncaught OAuthException: Error validating verification code
if(isset($_GET['code'])) {
$api = $this->facebook->api('/oauth/access_token', array(
'client_id' => APP ID,
'redirect_uri' => 'http://ogabrielsantos.com.br/dev/index.php?route=account/connect/facebook',
'client_secret' => APP SECRET,
'code' => $_GET['code']
));
echo'<pre>';
var_dump($api);
print_r($this->facebook->getUser());
echo'</pre>';
exit;
}
私はいくつかの質問を読みましたが、これは似ていますが、役に立ちません。