我开发了一个应用程序,用户通过Facebook(PHP SDK)登录;现在我想添加JS SDK,因为我想实现一个通用的朋友选择器(http://facebook-friend-selector.codersgrave.com/),它可以与JS SDK一起工作。我有两个问题:Facebook通过PHP SDK登录,然后使用JS SDK
1)可以混合两个SDK导致问题?
2)I添加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,但是怎么做?这个问题Passing the Facebook Authorization Token from PHP to 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,那么问题出在哪里?
哈哈哈,伟大的想法都一样吗? http://stackoverflow.com/questions/20785993/given-url-is-not-permitted-by-app-setting-with-js-sdk-but-not-with-loginurl-fr。请在加载页面之前打开一些javascript控制台(firebug,chrome默认控制台,IE默认控制台),然后查看您是否收到有关域问题的日志消息。告诉我你看到了什么。我仍然无法相信我们的情况有多相似。 – Letterman
是的,情况完全一样:)但在我的情况下,我没有得到任何错误! 如果我尝试记录答案的ajax调用 https://www.facebook.com/dialog/feed和https://graph.facebook.com/me/friends都执行在0毫秒(根据Firefox)没有答案。 – Eugenio
对不起,我的意思是我没有得到任何特定的错误,就像你的情况一样,调试警报显示“未知错误”为错误信息 – Eugenio