0

我对 Facebook PHP API 有疑问。这是我的代码:

<?php
$facebook = new Facebook(array(
    'appId'  => 'MY_APP_ID',
    'secret' => 'MY_SECRET'
));

$uid = $facebook->getUser();
if ($uid) {
    try{
        $user = $facebook->api('/me');
    } catch (Exception $e){
        error_log($e);
        $user = null;
    }
}

if (!$uid) {
    $login_url = $facebook->getLoginUrl(array(  
        'next' =>   'http://www/mywebsite.com', 
        'redirect_uri' =>   'http://www/mywebsite.com', 
        'scope' => 'email,publish_stream,user_birthday,user_location'
    ));

    echo '<a href="'.$login_url.'">TEST TO CONNECT</a>';
} else {
    print_r($user);
}

我一直有 TEST TO CONNECT 行,所以它看起来像 $facebook->getUser(); 总是返回 0。有什么想法吗?

谢谢您的帮助

4

3 回答 3

1

你能看到任何错误吗?您是否被带到登录页面并返回?还是一切都好?

您的代码中的错误似乎if (!$uid)在您生成登录 url 的部分之下。

我真的不知道'next' => 'http://www/mywebsite.com',那里有什么。

尝试使用这个:

$loginUrl = $facebook->getLoginUrl(
                array(
                   'scope'         => 'publish_stream,read_friendlists,user_photos',
                   'redirect_uri'  => $redirecturi
                )
            );

另外,不要忘记包含 Facebook PHP SDK 文件。

require_once("facebook.php");//or full location if the file is placed elsewhere.

于 2012-11-14T09:06:48.390 回答
0

我遇到了类似的问题。我搜索了整个互联网,访问了博客、论坛,但一切都是徒劳的。所以,我决定使用 facebook 的 JS SDK 而不是 PHP SDK。当我这样做时,JS SDK 通过说我的帐户是从其他浏览器访问来扩展登录过程的。这个扩展显示没有从 php sdk 端出现。我想我应该恢复原状并再次尝试使用 PHP SDK ......然后它就成功了。

所以基本上不是你的代码错误,而是fb的登录过程导致了这个错误。您有两个选择:i)请您的朋友参与测试登录 ii)使用 js sdk

于 2014-03-17T13:04:30.410 回答
0

如果这是您的完整代码,那么存在一个主要问题:您一开始没有包含 facebook 类:

include 'Facebook.php';

还要确保您的 App ID 和 App Secret 正确无误。并使用“publish_actions”而不是“publish_stream”。

如果这没有帮助,请调试。facebook 通常会告诉你什么是错的。

于 2012-11-14T09:03:29.807 回答