我正在尝试使用fb:registration XFBML标记。在大多数情况下,它似乎工作;但是,当我单击名称字段中的“X”然后单击“注销”时,我收到错误消息
'client_id'无效。
虽然发生了这个错误,但实际的注销过程似乎是成功的;如果我手动刷新页面,我会在登出状态下获取表单。我尝试通过订阅auth.logout事件并重新加载页面来解决此问题,但错误会阻止事件在页面重新加载之后被触发。
使用firebug,我发现实际的javascript错误为FB.getSession incompatible with OAuth2
,并在connect.facebook.net/en_US/all.js
的第9行调用。我没有打电话给任何涉及会议的事情,所以我不确定为什么会发生这种情况。
我尝试过使用firefox,chrome和safari,这三个都遇到了问题。另外,在safari和chrome上,当我尝试使用注册插件登录时,我也会收到相同的错误。如果我手动刷新错误消失并且登录过程成功,就像注销一样。
我在开发过程中在本地运行,因此我制作了一个Facebook应用程序,仅用于测试网站URL和域引用localhost。我不是沙盒模式,我正在加载像这样的js sdk:
<div id="fb-root"></div>
<script src="{$pageProtocol}connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId: {$facebookAppId},
cookie: true,
xfbml: true,
status: true,
channelUrl: '{$pageProtocol}{$webhost}/{$channel}',
oauth: true
});
(这是从一个聪明的模板中调用的;我查看了生成的源代码,所有{$ var}位都被正确替换。)
这是我的xfbml标签:
<fb:registration
redirect-uri="http://localhost:8888/join?with=facebook&done=true"
fields='[{"name":"name"},
{"name":"email"},
{"name":"city", "description":"City", "type":"select", "options":{
"_98":"Albany / Capital Region",
"_3":"Albuquerque",
"_99":"Allentown / Reading"
}
}
fb_only = true
>
</fb:registration>
(我缩短了上面的城市名单。)
所以,如果有人能弄清楚我做错了什么,请告诉我。
图片:
来自此模式:http://i.stack.imgur.com/sVN1E.png
点击退出,即可获得:http://i.stack.imgur.com/eiLwY.png