0

私は codeigniter フレームワークを使用して小さなアプリケーションの作成を開始し、Facebook 内でアプリケーションを作成した後、github から Facebook 接続をダウンロードしました。

内部にfacebook.phpを作成し、内部にapplication/config/ 抽出していますfacebook.php & base_facebook.phpapplication/libraries/

これは私のコードです

class Welcome extends CI_Controller {

    private $data = array();



    public function index() {
        $this->data['loginUrl'] = $this->facebook->getLoginUrl();
        $this->data['userId'] = $this->facebook->getUser();
        $this->load->view('welcome_message', $this->data);
    }

}

自動ロードで私は持っています:

$autoload['libraries'] = array('database','session','facebook'); 

なぜgetUser()0を返すのか、どうすればこの問題を修正できますかthx

4

2 に答える 2

3

onbase_facebook.phpでメソッドを見つけmakeRequest()、関数内で次の行を見つけます。

$opts = self::$CURL_OPTS;

その直後に、次を追加します。

$opts[CURLOPT_SSL_VERIFYPEER] = false; 

またはここから読む

于 2012-09-06T17:00:35.890 に答える
0

時々、これを行います。その理由を解明したことはありませんが、今では常に従っている簡単な解決策があります。

getUser を要求するのではなく、try catch ブロックでラップされた api(/me) を要求します。これが失敗した場合、ユーザーはログインしていないか、トークンが無効です。それが機能する場合、ユーザーはログインしており、結果の配列からユーザー ID を取得します。

とにかく/meを要求するので、おそらく通話を保存しています。エラー トラップの try catch を覚えておいてください。

于 2012-08-22T08:41:49.040 に答える