よろしく、
Facebook SDK-PHP と Codeigniter に問題があります。
ユーザーの基本データをキャプチャして取得しようとすると、そのユーザーのセッションを取得できません。
「現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります」というエラーが表示されます。
そして、「getUser()」を適用すると、「0」が返されます。
注: php-sdk をダウンロードし、ディレクトリ ライブラリにファイル base_facebook.php および facebook.php を配置します。
私の application/config/config.php に、Facebook アプリケーションのキーと app_secret を入れました。
Config.php :
$config['base_url'] = 'http://localhost/myapp_local';
$config['app_id'] = 'xxxxxxxxxxxxxx';
$config['secret'] = 'xxxxxxxxxxxxxxxxxxxxxxxx';
$config['app_name'] = 'http://apps.facebook.com/myapp_local/';
私の Controller Main.php には、次のコードがあります。
class Main extends CI_Controller {
public function __construct() {
parent::__construct();
$fb_config = array(
'appId' => $this->config->item('app_id'),
'secret' => $this->config->item('secret')
);
$this->load->library('facebook', $fb_config);
private function _getInfoUserFB() {
try {
$fb_id = $this->facebook->getUser();
if ($fb_id) {
$fb_data = $this->facebook->api('/me');
return $fb_data;
}
} catch (Exception $exc) {
echo $exc;
}
}
[....]
}
さて、ブール値を取得する変数 $fb_id では、常に「0」を持っています。そのため、現在のユーザー facebook のデータを取得しようとすると、常に「現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります」というメッセージが表示されます。
$fb_data['id'] = NULL
$fb_data['first_name'] = NULL
$fb_data['last_name'] = NULL
ここで何が間違っていますか?見逃しているステップや設定はありますか?
注2:Facebookでログインするボタンがありません。私のアプリは、Facebookのアプリの構成を介してFacebookに直接接続します。(キャンバスURL、セキュアキャンバスURL、キャンバスページ、サイトURL)
注 3: 私のアプリケーションには、必要なアクセス許可がいくつかあります。そのため、必要なアクセス許可を Settings-Permissions に設定しましたが、ダイアログ確認のアクセス許可を表示するための "Auth Referrals" のオプションが表示されません。
CodeIgniter バージョン 2.1.3 と PHP-SDK v 3.2.0 を使用しています