【问题标题】:Facebook Php SDK - getUser() return always 0Facebook Php SDK - getUser() 总是返回 0
【发布时间】:2013-05-28 13:14:26
【问题描述】:

我阅读了此论坛上的所有主题,但找不到我的解决方案..

我使用 facebook 的最后一个 Php SDK:v3.2.2。

所以我用了这个:

//start fb
$facebook = new \Facebook(array(  
    'appId'  => $fb_app_id,  
    'secret' => $fb_app_secret,  
    'cookie' => true,  
));

// get id user-fb
$fbUser = $facebook->getUser();

if ($fbUser) {
    try {
      $fbUserProfile = $facebook->api('/me'); // take user-infos
      $friends = $facebook->api('/me/friends'); // take his friend

    } catch (FacebookApiException $e) {
      error_log($e);
      $fbUser = null;
    }
}

if ($fbUser) {
    $logoutUrl = $facebook->getLogoutUrl(array( 'next' => ('my-url') ));
} else {
    $loginUrl = $facebook->getLoginUrl(array(
        'canvas' => 1,
        'fbconnect' => 0,
        'scope' => 'email,offline_access,publish_actions',
        'req_perms' => 'publish_stream,email',
        'redirect_uri' => 'my-redirect-url'
        ));
}

所以我不明白什么是错的.. 当我测试它时,我第一次可以点击 loginUrl 并获得授权。但是当我再次尝试获取用户时,函数$facebook->getUser() return 0 再次获得了 loginUrl 但是当我点击链接时,我只是重定向到回调 url..

我不确定应用程序 facebook 是否需要特殊参数。我的 app_id 和 app_secret 是 100% 确定的。

【问题讨论】:

标签: php facebook facebook-php-sdk


【解决方案1】:

我使用
$facebook->getLoginUrl(array( 'scope' => 'public_profile', 'redirect_uri' => 'http://www.your_domain/current_page.php' ));
解决了这个问题 其中'http://www.your_domain/current_page.php' 是我运行此代码的同一页面
注意使用 Facebook php sdk 3.2.3

【讨论】:

    【解决方案2】:

    (问题已在 cmets 中回答。见 Question with no answers, but issue solved in the comments (or extended in chat)

    OP 写道:

    好的,我解决了错误:回调 url 错误,我需要调用当前 url 而不是特殊的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-03
      • 2011-10-11
      • 2013-02-16
      • 2013-03-19
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 2014-03-02
      相关资源
      最近更新 更多