相关疑难解决方法(0)

为什么Facebook PHP SDK getUser总是返回0?

我正在尝试使用一个需要Facebook用户提供信息的网站,我正在使用PHP和JS SDK.

我有一个PHP函数:

public function isLoggedOnFacebook() {
    $user = $this->_facebook->getUser();
    if ($user) {
        return $this->_facebook->api("/$user");
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

在一个持有SDK中的facebook对象的类中$this->_facebook.

然后在块上我这样做:

<?php if (!$this->isLoggedOnFacebook()): ?>
<div>
   <fb:login-button show-faces="true" perms="email" width="500" />
</div>
<?php endif ?>
Run Code Online (Sandbox Code Playgroud)

并且FB JS环境已正确设置(我认为),因此它可以工作.因此,用户可以弹出并授权该站点.

问题是即使在用户授权应用程序后,$ user始终为0,意味着$facebook->getUser()始终返回0,然后列出用户的面孔,包括已登录的用户,但如果我拨打电话$facebook->api('/me')或其他什么,那么它将会抛出无效的令牌异常.

我已经看到了这个问题,但我还没有看到解决方案,我不知道问题出在哪里,我的想法已经用完了.

在应用程序部分的开发人员的Facebook页面上有一个网站选项卡,您可以在其中设置您的站点URL和站点域,我认为这是我的问题的原因,但我不知道究竟是什么字段应该包含.

php facebook facebook-graph-api

39
推荐指数
3
解决办法
6万
查看次数

如何解决'FB未定义'?

有时我在加载http://connect.facebook.net/en_US/all.js时遇到"FB未定义"问题

我意识到问题是因为有时我的网站只是没有加载该文件.所以它什么都没有,而FB对象确实不存在.

我的解决方案是在发生这种情况时阻止我的用户,所以我在JavaScript中尝试了以下代码但似乎没有工作:

if (FB) {/*run the app*/} else {/*alert the user*/}
if (FB!==false) {/*run the app*/} else {/*alert the user*/}
if (FB!='undefined') {/*run the app*/} else {/*alert the user*/}
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答!

javascript facebook

32
推荐指数
4
解决办法
10万
查看次数

Facebook返回到Javascript SDK的访问令牌可以使用PHP SDK在服务器端工作吗?

我正在建立一个利用Facebook连接的网站.我正在使用javascript SDK对客户端进行身份验证,并在每次用户登录时在我的服务器上调用AJAX方法,以检查用户是否为我的应用程序所知,以及用户是否是新用户将FBID存储在我的数据库中将它们注册为新用户.

我的问题是:Facebook返回到Javascript SDK的访问令牌是否可以在服务器端使用(例如PHP SDK)?我是否可以通过AJAX调用将访问令牌字符串发送到服务器,将其存储在我的数据库中(以及时间戳,以便我知道它有多长时间),然后使用它来调用图API服务器端?这甚至是合乎逻辑的事情吗?

javascript facebook-graph-api access-token facebook-javascript-sdk

6
推荐指数
1
解决办法
3614
查看次数

从访问令牌获取Facebook用户(PHP SDK 3.0.1)

我有一个应用程序利用它自己的登录和Facebook登录相结合.我使用自己的会话和cookie来记住用户.我想记住facebook用户,但没有offline_access,所以我想为facebook用户设置我自己的cookie,当他们返回时只是从facebook获取新的access_token,因为他们已经授权了应用程序.

当用户第一次登录时我设法做了所有这些,但当他们回来时我检测到一个cookie并且我得到一个有效的新access_token我不能把它放在facebook会话中.我使用PHP SDK 3.0.1并且有一个功能

$这个 - > FB-> getUserFromAccessToken($令牌)

在base_facebook.php里面,但是当我使用它时它只会抛出一个服务器错误.(fb是我的类,扩展了Facebook类,$ token是有效的新令牌)

我用的时候

$这个 - > FB->的getUser()

它只返回0.

我知道我可以从中获取信息

https://graph.facebook.com/me?access_token= $ access_token

但我需要在Facebook会话中以某种方式

另外,base_facebook.php中有一个对我有用的功能

$这 - > FB-> setAccessToken($的access_token);

所以我可以将令牌放在类中并且它可以工作但是当我之后调用getUser()时它仍然返回0

任何帮助表示感谢!

php api sdk facebook

2
推荐指数
1
解决办法
2万
查看次数