PHP SDK 3.2.2 を使用して Facebook からアクセス トークンを取得しようとしています。これは、Facebook でユーザーが正常にログインした後にリダイレクト URL に配置したコードの下にあります。私の問題は、ユーザーがAPPへのアクセスを許可した後、 $this->facebook->getAccessToken()がユーザーアクセストークンを返さないことです.'AppId | AppSecret'という形式の文字列だけで、コードを含める必要があります.ユーザー アクセス トークンを手動で取得します。これは機能しますが、getAccessToken を使用すると正しいトークンが返されない理由がわかりません。また、$code を使用するよりもユーザー アクセス トークンを取得する良い方法があるかどうかも知りたいです。これは良い方法だとは思わないからです。
注: $this->facebook を使用するのは、Codeigniter ライブラリとしてロードするためです。
$access_token = $this->facebook->getAccessToken();
//-------------------------------------------------------------------------
//echo '<br/>Access Token: ' . $access_token;
// Generare Token if not created:
$code = $_REQUEST["code"];
if ( isset($code) ) {
//echo '<br/>Code Enviado: ' . $code;
//exit();
$appId = $this->facebook->getAppId();
$appSecret = $this->facebook->getAppSecret();
$redirectTo = base_url('asociar/acc_facebook/step2/');
$token_url="https://graph.facebook.com/oauth/access_token?client_id="
. $appId . "&redirect_uri=" . urlencode($redirectTo)
. "&client_secret=" . $appSecret
. "&code=" . $code . "&display=popup";
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$access_token = $params['access_token'];
//echo '<br/>Repitiendo el Token';
$this->facebook->setAccessToken($access_token);
//echo '<br/>Second Access Token Fijado: ' . $access_token;
}
//-----------------------------------------------------------------------
アップデート:
この問題は、PHP SDK で CI を使用したことが原因です (それについては自分の回答を確認してください) が、この回答は Facebook PHP SDK でこの問題を抱えているすべての人に有効です (@Imbru の回答を確認してください)。