3

我有我的fb登录按钮,所以FB登录按钮没有要求onlogin功能

<fb:login-button perms="email" size="small" onlogin="check_login_session()">Sign Up Using Facebook</fb:login-button> 

我还定义了check_login_session功能已经为我使用它。点击链接网页的其他(创建哪些工作)。但是,我的问题是,当我已经登录到FB,然后单击该按钮,FB弹出窗口出现,然后消失,它什么都不做。 onlogin不被调用,也不显示任何错误。

如果我是不过注销,然后按一下按钮,它会给我的FB登录提示,并分别填写完成并提交,因为它应该会表现。只有在我已经登录后,我才能点击发生问题的FB登录按钮。有任何想法吗?

编辑:我发现,它并调用它,如果我说的onlogin但是任何功能我在页面上定义放警报(“测试”),并尝试调用它返回说这是没有定义的。

回答

1

该事件说onlogin,所以它只会在您通过Facebook Connect登录时执行。

如果您已经登录的Facebook连接,则该函数将不执行,因为你已经登录......?

+0

但是,当我登录并按下它,执行它,我觉得手段onlogin仅仅指的是如果你是在已经登录警报 – justNeph 2010-11-05 14:54:42

2

新的Facebook登录流程说只显示Facebook登录按钮,如果用户没有当前登录到Facebook上。如果你反正显示它,当他们点击它时什么都不会发生,因为它会检测到用户已经登录到Facebook,所以会退出登录过程,并且不会调用登录后挂钩。 Facebook的文档说,首先检测用户是否已经登录到Facebook,如果他们已经登录,抓住facebook的uid,并简单地执行你将作为后登录挂钩的一部分调用的函数。 Facebook的登录按钮就是这样 - 一个登录Facebook的按钮,而不是一个登录到你的网站的按钮。

2

我想你想要在登录发生后或者用户进入该页面并且已经登录时通知登录用户。在这种情况下,您必须订阅auth事件并处理它:

FB.Event.subscribe( 'auth.authResponseChange',功能(响应){ 如果(response.status === '连接'){// yourcode }否则如果(response.status === 'not_authorized'){ //你的代码 } else { // yourcode } });

0

最有可能你想调用的函数是不是,即使你认为它应该是页面上访问。确保你删除了函数名称后面的()。 “警觉”确实有效,但是你的功能并不能证明这一点。确保你的函数可以被脚本访问,使它成为全局的,并确保你的脚本被加载。