像小部件一样,评论小部件不能:请参阅更新 2
我继承了一个具有 Graph 1.0 实现的项目。用户可以使用 Facebook 登录,然后在网站上点赞和评论。
身份验证系统 (symfony/php) 直接与 Facebook 交互以识别用户,因此,如果用户不存在,则可以创建个人资料,如果存在,也可以登录到本地系统.
Like 和 Comment 小部件已更新为使用 2.0 语法:
window.fbAsyncInit = function() {
FB.init({
appId : 'KEY_HERE',
xfbml : true,
version : 'v2.3'
});
};
</script>
<script>(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/es_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
这似乎工作正常。生成了小部件,并且使用我的个人 Facebook 帐户,我可以在此站点和 Facebook 上发布和喜欢并查看结果。
同时,对于身份验证,应用程序会生成一个如下所示的授权 url:
http://www.facebook.com/v2.3/dialog/oauth?client_id=API_KEY&redirect_uri=REDIRECT_URI&state=TOKEN&scope=SCOPE
范围包括以下内容:
'email', 'user_website', 'offline_access', 'status_update', 'publish_actions', 'publish_stream'
从该请求的回调处理程序中,我们检索用户 Facebook 个人资料并转发到自定义代码以登录或注册用户:
https://graph.facebook.com/v2.3/oauth/access_token?client_id=API_KEY&redirect_uri=REDIRECT_URI&client_secret=API_SECRET&code=CODE
只要我使用我的个人 FB 个人资料,这似乎也有效。我可以登录和评论和喜欢的东西。
当我使用我的 Open Graph 测试用户登录时,我无法点赞或评论。尝试发表评论时,我收到一个错误,在灯箱/对话框中简单地指出“糟糕”。从我的控制台,我收到以下错误:
for (;;);{"__ar":1,"error":1357010,"errorSummary":"Oops","errorDescription":"Something went wrong. We're working on getting it fixed as soon as we can.","payload":null,"bootloadable":{},"ixData":{},"lid":"0"}
以下似乎是错误代码的完整列表,但未列出 1357010:
[ http://fbdevwiki.com/wiki/Error_codes][1]
所以,根本的问题是,为什么我的 Open Graph 测试用户(配置为在 2.0 模式下运行应用程序)不能与小部件交互,而我的个人 FB 配置文件可以?我是否未能正确升级身份验证系统,导致 2.0 测试用户没有足够的权限?
[更新]
当我的应用程序登录用户时,FB 对话框中没有任何部分允许用户接受所请求的权限。无论我是使用个人帐户还是图形测试用户登录,我都可以赞一个页面,然后从结果对话框中评论 - 该对话框请求这样做的权限。
但是,从标准的 Comments 小部件中,我从来没有被要求授予发布权限 - 它只是失败并出现 error 1357010
。打开/关闭“也在 Facebook 上发帖”没有任何区别。
我不是以 2.0 方式进行身份验证吗?
[更新 2]
看起来我的 Open Graph Test 用户可以点赞一个页面,然后,在确认后,用户可以在页面上评论来自 Like 小部件的结果对话框。
但是,从评论小部件中,评论不成功,我得到一般错误代码 1357010。
我需要做什么来授权我的 OG 测试用户(v2.3 用户)从标准评论小部件提交评论?