我对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-&gt; getUser();总是返回0.任何想法?
感谢您的帮助
答案 0 :(得分:1)
你能看到任何错误吗?您是否被带到登录页面并返回?或者一切都好吗?
代码中的错误似乎位于if (!$uid)
部分下,然后您生成登录网址。
我真的找不到那里的'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.
答案 1 :(得分:0)
如果这是您的完整代码,那么有一个主要问题:您在开头没有包含facebook类:
include 'Facebook.php';
还要确保您的App ID和App Secret正确无误。并使用“publish_actions”而不是“publish_stream”。
如果这没有帮助,请调试。 facebook通常会告诉你哪里错了。
答案 2 :(得分:0)
我遇到了类似的问题。我搜索了整个互联网,访问了博客,论坛,但一切都是徒劳的。所以,我决定使用facebook的JS SDK而不是PHP SDK。当我这样做时,JS SDK通过说我的帐户是从其他浏览器访问来扩展登录过程。这个扩展显示没有出现在php sdk端。我以为我应该回复并尝试再次使用PHP SDK ......并且bamn工作正常。
所以基本上它不是代码的错误而是fb的登录过程会引起这个错误。你有两个选择:i)要求你的朋友参加测试登录ii)使用js sdk