簡體   English   中英

為什么$ this-> facebook-> getUser(); 返回0?

[英]why $this->facebook->getUser(); returns 0?

我已經嘗試了一切。 我將域更改為非本地主機。

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller Extends CI_Controller
{
    var $data;
    var $master;

    function __construct()
    {
        parent::__construct();

        $this->data = array();
        $this->master = "layout/master";

        parse_str( $_SERVER['QUERY_STRING'], $_REQUEST );
        $CI = & get_instance();
        $CI->config->load("facebook",TRUE);
        $config = $CI->config->item('facebook');
        $this->load->library('Facebook', $config);

        $user = $this->facebook->getUser();

        if ($user == 0)
            $this->data['login_url'] = $this->facebook->getLoginUrl(array("scope" => "user_about_me"));
        else{
            $user = $this->facebook->api('/me');
            $this->data['logout_url'] = $this->facebook->getLogoutUrl();
        }
        print_r($user);
        print_r($this->facebook->getAccessToken());
    }
}

為什么我成功獲取AccessToken,但是$ user仍然返回0? 我搜索了全部stackoverflow和google。

如果我不清楚,facebook成功將我重定向到我的網站。

調整您的代碼

function __construct()
{
    parent::__construct();

    $this->data = array();
    $this->master = "layout/master";

    parse_str( $_SERVER['QUERY_STRING'], $_REQUEST );
    $CI = & get_instance();
    $CI->config->load("facebook",TRUE);
    $config = $CI->config->item('facebook');
    $this->load->library('Facebook', $config);
}

function facebook_login()
{    

    $user = $this->facebook->getUser();

    if($user == 0){

        $loginUrl = $this->facebook->getLoginUrl(array("scope"=>"user_about_me"));
        redirect("$loginUrl","location");

    } else {

        $user_info = $this->facebook->api('/me');
        print_r($user_info);

    }
}

我花了好幾個小時來嘗試許多修復程序,並注意到我的域在Facebook中設置為http://domain.co.uk ,而getLoginUrl卻定向到http://www.domain.co.uk

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM