0

よろしく、

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 を使用しています

4

3 に答える 3

1

Facebook Developer Site -> Apps -> Permission に移動する必要があります。アプリの基本情報のアクセス許可を設定します。

次に、関数getLoginUrl(array("scope" => "user_about_me)))で、パラメーターを指定する必要があります。

最後に、アクセストークンを保存する必要があります$this->facebook->getAccessToken();

問題がある場合は、私に尋ねることができます。ほぼすべてのソーシャル メディア プラットフォームで Codeigniter をセットアップしました :)

于 2012-10-20T07:37:06.100 に答える
0

OK!、解決しました。修正されたのは、新しいバージョンとのやり取りで、次のフォームにする必要があり ます。

そして、アプリが初めてロードされたときに、現在のユーザーの情報を取得する関数を初めて呼び出す必要があります。つまり、Web サイトの MAIN、INDEX ビューで関数を呼び出します。

それ以外の時間に呼び出すと、関数は現在のユーザーの access_token を取得できません。

于 2012-10-20T18:07:19.573 に答える
0

Facebookは本当に苦手localhostです。これは私も何度か経験しています。私が見つけた解決策は、ローカルで開発できるようにすることで、ホスト ファイル (C:\Windows\system32\drivers\etc\hostsまたは/etc/hosts) を編集し、そこに次の行のようなものを追加することです。

127.0.0.1    myfbapp.local

これを使用して、ブラウザで をhttp://myfbapp.local/指定すると、実際には 127.0.0.1 に移動し、つまりlocalhost. もちろん、CI 構成も更新し、ベース URL を に変更する必要がありますhttp://myfbapp.local

私が知る限り.、ドメイン名にドット ( ) が含まれていない場合、Facebook PHP SDK は Cookie の設定に問題があるため、まさに私のソリューションがそうです。

于 2012-10-20T04:29:23.260 に答える