2015-04-20 259 views
0

比如Widget作品,评论插件并不:请参阅更新2Facebook的图形API 2.0可以喜欢/评论,但不评论


我继承具有图形1.0实现的项目。用户可以使用Facebook登录,然后在网站上点击和评论。

身份验证系统(symfony/php)直接与Facebook进行交互,以识别用户,如果他们不存在,可以创建配置文件,或者如果他们确实存在,他们可以登录到本地系统。

等,并评论部件已更新,以使用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上查看结果。

同时,进行身份验证,应用程序生成的授权网址是这样的:

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 Test User登录时,我不能赞成或评论。当尝试发表评论时,我收到一个错误,它只是在灯箱/对话框中声明“糟糕”。从我的控制台,我得到以下错误:

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 Test User(配置为以2.0模式运行应用程序)不与这些小部件交互,而我的个人配置文件可以?我没有正确地升级认证系统,以致2.0测试用户没有足够的特权?

[UPDATE]

当我的应用程序登录的用户,不存在FB对话框,其允许用户接受正被请求的权限的一部分。无论我是否使用我的个人帐户或图形测试用户登录,我都可以使用就像一个页面,然后从结果对话框中评论 - 该对话框请求许可。

但是,从标准评论小部件,我从来没有被要求授予发布权限 - 它只是失败,错误1357010。切换开关“也发布在Facebook上”没有任何区别。

我是不是以2.0的方式进行身份验证?

[更新2]

它看起来像我的Open Graph测试用户可以像一个页面,然后,在确认后,用户可以评论的页面上形成从像插件的结果对话框。

然而,从评论插件,评论不成功,我得到的一般错误代码1357010.

什么我需要做的授权我OG测试用户(V2.3用户)提交评论从标准的评论小部件?

+0

offline_access和publish_stream权限不再存在。尝试在Graph Explorer中使用相同的访问令牌 – WizKid

+0

提供相同的请求,感谢您的建议@WizKid。我在Graph Explorer中从我的测试用户粘贴了一个访问令牌。我得到一个包含以下字段的有效回复:'id,first_name,last_name,email,picture,link'。修剪我的权限,只是'email,publish_actions,user_website',我仍然得到相同的错误,代码:'1357010' –

回答

0

目前尚不清楚你打来的电话是什么,我相信“赞和评论小工具”是你谈论的是由API支持而不是官方Facebook插件支持的自定义工具。

所以这个问题:测试用户CAN NOT与真实数据为每docs互动:

  • Each app can create a maximum of 2000 test users.
  • Test users can only interact with other test users, and not with real users on Facebook.com.
  • Test users cannot become a fan of a public Facebook Page or create content on them, such as writing on a Page's wall. A Test user can however view and interact with any app tab on the Page associated with the app that created them.
  • Test users are unable to reply to messages, even if the message was created by the test user.
  • Test accounts can only be accessed and used by any developer of the associated app.
  • Test users will only have 'Tester' privileges on the associated app. This means that they can use the app in Public Mode or Development Mode, but cannot edit any technical settings or access insights for that app.
  • Test accounts cannot be converted to normal user accounts.

如果您正在使用真实的数据交互,这可能无法正常工作。您可以通过创建一个新的测试用户并观察结果来测试这一点。

+0

Thanks @ifaour。 关于这些是自定义小部件还是官方Facebook插件,我相信它们是官方的 - 没有任何习惯。我插入如下内容:'

',然后FB将其转换。 而且,关于“真实数据”,当我的测试用户发布时,我会立即看到评论显示,然后将其删除。这是因为测试用户正在与“真实数据”交互,并且它已插入UI中,在服务器上被拒绝,然后被删除? –

+0

我不知道我头上的确切行为。但是我会假设类似的逻辑适用于“应用程序测试帐户”无法以您尝试的方式与真实数据(您的网站)进行交互的情况。 – ifaour