【发布时间】:2012-01-27 08:46:00
【问题描述】:
我刚刚开始使用 Facebook JavaScript SDK,我想做的只是让用户能够使用他们的 FB 帐户登录我的网站。首先,我输入 <div class="fb-login-button">Login with Facebook</div> 和样板,就像它在 Facebook for Websites 文档中所说的那样,位于 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 中描述的服务器端身份验证链接,这次重定向肯定发生了,我在查询参数,但在 Init 中或作为事件处理程序运行任何 FB.JavaScript 方法时,我得到相同的 [缺少] 结果。我仍然找不到 facebook cookie(也许服务器端方法永远不会产生一个?)但我想通过 Ajax 调用或其他东西我将能够使用代码来获取 access_token(它会很好如果 FB 的文档提供了一些关于如何使用该代码的提示,但这是另一个问题)。
即使我尽可能放弃 Facebook 的 JavaScript SDK 并依赖服务器端脚本,我至少应该能够使用 FB.getLoginStatus。我可能做错了什么?
【问题讨论】:
-
浏览器控制台出现什么错误?
-
在您对系统的描述中没有提到所需的
<div id=fb-root></div>... 有吗? :P -
哦,是的,存在。@DMCS Firefox 和 IE9 不会在状态栏或任何内容中显示任何脚本错误。您能在 jsfiddle.net 上编写一个示例并在此处发布。这是我的一个样本,效果很好。 jsfiddle.net/dmcs/qrXkZ/2
标签: authentication facebook-javascript-sdk access-token