簡體   English   中英

$ facebook-> api('/ me')未提供用戶數據

[英]$facebook->api('/me') not giving the user data

require_once($_SERVER['DOCUMENT_ROOT'] . '/facebook-php-sdk/facebook.php');

$facebook = new Facebook(array(
  'appId'  => FB_MAIN_APP_API_ID,
  'secret' => FB_MAIN_APP_SECRET
));

// Get User ID
$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  }catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

上面是我用來獲取應用程序Facebook詳細信息的代碼。 在我的本地主機中,它工作正常,並提供了我的Facebook電子郵件和用戶ID。 將其上傳到實時服務器后,此功能將無法使用,並且無法提供我的Facebook詳細信息。 我檢查了Facebook應用ID,它是正確的ID。

我無法弄清楚為什么它不能在實時站點中工作,因為它在我的本地主機中正在工作。 請幫我解決一下這個。 謝謝。

我認為問題出在服務器上使用的應用程序中。 因此,請嘗試使用與您的本地主機相同的應用程序,並在登錄和注銷URL(而不是本地主機)中使用$_SERVER['HTTP_HOST']

范例:

$session->fb_logout = $facebook->getLogoutUrl(array('next' => "http://" . $_SERVER['HTTP_HOST'] . "/path/to/logout"));

首先檢查一下$user_profile = $facebook->api('/me'); 顯示。 只需print_r變量$user_profile

例如:

    $user_profile = $facebook->api('/me');
    print_r($user_profile);
    exit;

如果它顯示為空白,那么肯定會進入catch塊。 然后在catch塊中寫入以下內容。

    print_r($e);
    exit;

您是否在Facebook中的應用程序配置中檢查了正確的URL?

我的FB應用程序具有這段代碼,並且可以正常工作,您可以嘗試一下嗎?

$session = $this->facebook->getUser();
if ($session) {
    $logoutUrl = $this->facebook->getLogoutUrl();
    try {
        $data['uid'] = $this->facebook->getUser();
        $me = $this->facebook->api($session);
        $data['me'] = $me;
    } catch (FacebookApiException $e) {
        error_log($e);
    }
} else {
    $loginUrl = $this->facebook->getLoginUrl(
        array(
            'scope' => 'publish_stream, user_about_me, email',
            'redirect_uri' => 'YOUR URL',
            'canvas' => 1,
            'fbconnect' => 0,
            'display' => 'page',
        ));

}

if (!$session) {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}

$this->load->view('MY VIEW', $data);

為了獲得用戶ID,用戶需要授予權限

$user_id = $facebook->getUser();
 echo $uid;

if($user_id){
  try {
    $user_profile = $facebook->api('/me');

  } catch (FacebookApiException $e) {
    error_log($e);
    $user_id = null;
  }
}else{
    $login_url = $facebook->getLoginUrl();
    echo("<br>login url=".$login_url);
};

在用戶授予許可權后,檢查login_url,您可以訪問用戶ID。

嘗試這個

暫無
暫無

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

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