[英]Facebook Login via PHP SDK, then use JS SDK
我已经开发了一个应用程序,用户可以通过Facebook(PHP SDK)登录; 现在,我也想添加JS SDK,因为我想实现一个与JS SDK一起使用的通用好友选择器( http://facebook-friend-selector.codersgrave.com/ )。 我有两个问题:
1)混合使用两个SDK会导致问题吗?
2)我按照文档中的说明添加了JS SDK代码,并尝试了一个简单的请求
FB.api('/me/friends', function(response) {
alert(JSON.stringify(response));
});
但是我得到一个错误(未知错误); 我也尝试了一个对话框
FB.ui({
method: 'feed',
link: 'https://developers.facebook.com/docs/dialogs/',
caption: 'An example caption',
}, function(response){});
但是该框出现了,突然消失了。 我认为问题与身份验证有关...我想,由于我的用户是通过PHP进行身份验证的,因此我需要将访问令牌传递给JS,但是怎么办? 这个问题将Facebook授权令牌从PHP传递到Javascript似乎正是我所需要的,但我不明白答案:它说将令牌存储在cookie中,但是JS如何知道它,cookie应该使用哪个名称有? 最后,如果我做类似的事情
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
alert('connected');
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
}
});
我实际上收到了“已连接”警报,这意味着JS知道用户已登录,即使该登录是通过PHP进行的,那么问题出在哪里呢?
解决了。 我的代码包含两个愚蠢的错误,这是正确的代码:
function test(){
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
FB.api('/me/friends', function(response) {
alert(JSON.stringify(response));
});
}
});
}
<a href="" onclick="test();return false;">Test</a>
在第一个版本中,对friends方法的调用在getLoginStatus方法之外,因此在设置变量accesToken之前调用了它,此外,在test()调用之后,我还没有“ return false”语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.