使用fb时注册的“client_id”无效:注册XFBML标记(FB.getSession与OAuth2不兼容)

时间:2011-09-26 18:45:35

标签: facebook oauth registration xfbml

我正在尝试使用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

0 个答案:

没有答案