我刚刚开始使用Facebook JavaScript SDK,我想要做的就是让用户使用他们的FB帐户登录我的网站。首先,我放入了<div class="fb-login-button">Login with Facebook</div>
和样板文件,就像在developers.facebook.com/docs/guides/web/#login
我单击FB登录按钮,弹出窗口,单击允许...但没有任何反应。我无法在任何地方找到像fbsr_APPID这样的cookie(例如Request.Cookies("fbsr_MYAPPID")
没有任何内容),并且页面没有重定向到我在应用程序设置中指定的站点URL。我在调试中添加了一些JavaScript,并且实际上什么都没有。
window.fbAsyncInit = function () {
FB.init(
{
appId: 'MYAPPID',
channelUrl: http://bla,
status: true,
cookie: true,
xfbml: true,
oauth: true
});
// Additional initialization code here
alert("Please just prove this init code is running at all!!!!");
FB.Event.subscribe('auth.login', function (response) {
alert('Logged in: ' + response);
}
);
FB.getLoginStatus(function (response) {
alert('Check login: ' + response);
if (response.authResponse) {
var access_token = response.authResponse.accessToken;
alert('Access token yay! ' + access_token);
}
});
};
没有任何警报显示或任何显示,导致我认为整个脚本无法运行。
我从那个facebook按钮切换到developers.facebook.com/docs/authentication中描述的服务器端身份验证链接,这次重定向肯定发生了,我得到了一个 code = 查询参数,但我得到相同的[缺少]结果运行任何FB.JavaScript方法,在Init或作为事件处理程序。我仍然找不到一个facebook cookie(也许服务器端方法永远不会产生一个?)但是我想用Ajax调用或者其他东西我将能够使用代码来获取access_token(它会很好如果FB的文档提供了关于如何使用该代码的一些提示,但这是另一个问题。)
即使我尽可能地放弃Facebook的JavaScript SDK并依赖服务器端脚本,我也应该能够至少使用FB.getLoginStatus。我能做错什么?
答案 0 :(得分:4)
我已将问题缩小到这一行
channelUrl: http://bla,
它应该读取(当然有你的频道文件的真实网址:
channelUrl: 'http://bla',