0

まず、Facebook PHP SDK をダウンロードし、ここで最初の回答を適用しました: Using Facebook PHP-SDK 3.x to register/login user with Codeigniter 2.1.0

私のコントローラーで:

  1. ユーザーを取得しようとしています: $this->facebook->getUser(); .. 0 の場合は、別の関数 $this->facebook_login(); を呼び出します。-そうでなければ、たとえば名前のようなデータをデータベースに保存します。

  2. facebook_login() では、ログイン URL が生成されます: $this->facebook->getLoginUrl() - ビューに渡されて表示されます。

  3. これまでのところ、ログイン URL をクリックすると、Facebook にリダイレクトされ、承認と認証などが求められます。その後、「1」のページにリダイレクトされます。

  4. 問題は、getUser がゼロを返すことです。$ SESSION 変数を出力したところ、fb {appId}_state のみが設定されていることがわかりました。

次のコードを使用して、CI フォルダーにない別の php ファイル (login.php) を作成しようとしました。

<?php

define('BASEPATH', '');
require_once('application/libraries/facebook.php');

$fb = new Facebook(array('appId'=>'...', 'secret'=>'...'));

$user = $fb->getUser();

if($user == 0){
    $login = $fb->getLoginUrl();
    echo '<a href="'.$login.'">Login</a>';
} else {
    print_r($fb->api('/me'));
}

?>

login.php にアクセスしてから上記の「1」のページにアクセスすると、getUser はユーザー ID を返し、$_SESSION にはユーザーの詳細が含まれます。したがって、問題は CodeIgniter にあると思いますが、解決方法がわかりません。

いくつかの解決策を検索して試しましたが、それが私ができる最善の方法です。可能であれば、JS SDK を使用したくありません。

ありがとうございました

4

1 に答える 1

0

私は解決策を見つけ、それについてのブログ投稿をここに書きました。

于 2012-04-23T01:14:15.753 に答える