0

私はこれを何時間も理解しようとしており、利用可能なすべての投稿を試しました。

  1. 私はJavascript SDKを使用していません。PHP SDKとその最新のもののみを使用しています。

  2. github からダウンロードした最新の証明書があり、同じものを含めました。

  3. サンドボックスが無効になっています

新しいFacebookライブラリを作成しています

<?php

include(APPPATH.'libraries/facebook/facebook.php');
class Fbconnect extends Facebook
{
public $user = NULL;
public $user_id = NULL;
public $fb = false;
public $fbSession = false;
public $appkey = 0;
public $tests = 5;

public function Fbconnect()
{

    $ci =& get_instance();
    $ci->load->config('facebook', TRUE);
    $config = $ci->config->item('facebook');
    parent::__construct($config);

    $this->user_id = $this->getUser();
    $me = NULL;


    if($this->user_id)
    {
        try
        {
            $me = $this->api('/me');
            $this->user = $me;
            $tests = $this->user_id;
        }
        catch(FacebookApiException $e)
        {
            error_log($e);
        }
    }

}
}

私のログインコントローラー

public function facebook_request()
{
    $this->load->library('fbconnect');
    $data = array(
        'redirect_uri' => site_url('login/handle_facebook_login'),
        'scope' => 'email , user_birthday, user_interests'

    );

    redirect($this->fbconnect->getLoginUrl($data));
}

public function handle_facebook_login()
{
    $this->load->library('fbconnect');
    if($this->fbconnect->user)
    {
        echo "<pre>";
        print_r($this->fbconnect->user);
        echo "</pre>";
    }
    else
    {
        echo 'could not login<br/>';

        var_dump($this->fbconnect->user_id);

        echo '<br/>' ; echo  $this->fbconnect->tests; echo '<br/>' ; var_dump($this->fbconnect->tests);
    }

}

/config/facebook.php で appId とシークレットを定義しました。

出力は次のとおりです。

could not login
int(0) 
5
int(5)
4

1 に答える 1

0

Facebook では、アプリ ダッシュボードのsiteurlフィールドの末尾に「/」- スラッシュが必要であることがわかりました。

ほとんどのサイトは自動的に追加します。しかし、この場合ではありません。

それが他の人に役立つことを願っています!

于 2013-07-20T16:52:19.877 に答える