Facebook发布权限不起作用,无法发布内容

27

目前,我可以使用一些网页的objectids向喜欢这些页面的Facebook用户发布新闻动态更新。

现在,我正在尝试使用新的开放图谱和自定义操作来做同样的事情,将更新发布给在我的网站上执行特定操作的用户。但是,即使我使用我的应用程序获得了publish_actions权限,并使用我的Facebook帐户和一些虚拟测试用户帐户进行测试(在发布时间轴之前,只有开发人员和测试用户可以使用该权限),当我尝试发布时,我会收到此错误消息: "{"error":{"message":"(#200) Requires extended permission: publish_actions","type":"OAuthException"}}"

我还将我的应用程序类型更改为游戏,以便可以从授权对话框中正确获取publish_actions权限。

有什么想法可以帮助我解决这个问题吗?或者我是否必须等待时间轴发布后才能正常测试新的开放图谱发布?

编辑:发送的请求包含这些参数;

to: https://graph.facebook.com/feed
["access_token": "given access token", 
"message": "post message", 
"caption": "post caption", 
"picture":"picture url", 
"link": "link to post", 
"description": "post description", 
"ids": "object ids separated by commas"]

编辑2:我通过“添加到时间线”按钮请求权限:

<fb:add-to-timeline show-faces="true" mode="button" perms="offline_access,publish_actions,publish_stream"></fb:add-to-timeline>

我的意思是你正在请求权限的代码。 - Abby
请查看以下链接:http://stackoverflow.com/questions/33030007/publish-action-permission-in-facebook/33030753?noredirect=1#comment53887722_33030753 - KishuDroid
5个回答

17

我怀疑您没有正确地请求权限。这让我抓狂了好几个小时。尽管我正确地请求了权限并且认证似乎成功了,但实际上没有授权,因为我没有正确设置开放图谱应用程序。

当请求publish_actions权限时,Facebook会显示一个预览屏幕,展示你的应用程序将在他们的时间轴上创建什么样的合并。

换句话说,如果预览不起作用,Facebook就不会请求权限,所以你的请求是徒劳的。Facebook在文档中没有明确说明这一点,但是为了使其正常工作,您的应用程序在Facebook上需要完全正确的设置。

  1. 在应用程序的高级设置中启用Enhanced Auth Dialong
  2. 确保您在开放图谱部分设置了至少一个动作和一个对象
  3. 对于每个动作,你必须设置一个聚合

如果您没有完成所有这些步骤,就无法预览,因此Facebook不会请求权限,无论如何。


14
+1!如果我只能依赖 Facebook 的文档,我永远无法完成任务。 - João Bragança
这个答案还有效吗?我在“应用程序+应用程序ID+权限”中设置了操作,并将“publish_actions”添加到“用户和好友权限”字段中...虽然不确定它是否应该是“扩展权限:”。 - Gervase
1
已经有一段时间没碰这个了。如果有变化,请让我知道,我会更新这个答案(或者你也可以发布一个新的答案)。 - TLK
1
请问您所说的这行代码是什么意思:“确保在Open Graph部分中至少设置了一个操作和一个对象”,以及“每个操作都必须设置一个聚合”?我该如何实现呢? - fish40
你如何设置聚合? - Bok McDonagh

12

我知道可能已经很晚才回答[但可能对其他人有帮助],但截至2014年,如果您想将任何内容发布到用户[除了应用程序注册的开发人员]时间线上,则需要Facebook权限,即必须提交应用程序以获得批准,请参考以下链接。
1)https://developers.facebook.com/docs/facebook-login/permissions/v2.0#review
2)https://developers.facebook.com/docs/apps/review/
3)https://developers.facebook.com/docs/facebook-login/permissions/v2.0.
您可以检查它是否在概述部分下方。这已经通过最新版本的SDK进行验证。


所有应用程序开发者都可以发布吗?还是只有应用程序的管理员可以发布?从应用程序的管理员帐户中,我已添加了两个开发人员帐户;尽管我可以使用管理员帐户发布,但我无法使用开发人员帐户发布...? 是这样吗? - santiago_apr1
1
所有开发人员都可以发布,确保他们已经接受了邀请(一旦您将他们添加到Facebook,Facebook会发送邀请)。作为替代解决方案,您也可以将他们添加为测试人员。 - Mightian
我在管理员中添加了开发者电子邮件。开发者可以从他的帐户中看到应用程序,他可以在应用程序的角色部分中将自己列为开发者。但是我无法使用开发者帐户发布,尽管我可以使用管理员帐户发布... 我错过了什么吗...?你能帮我解决吗.. - santiago_apr1
1
如果您能看到他们已注册为开发者,则他们必须能够使用应用程序功能,例如发布、获取数据等,只是为了尝试一下[可能不是实际解决方案],请选择显示应用程序给公众的选项为“是”,另外,作为解决方法,您可以创建一个测试应用程序[克隆您的原始应用程序]并尝试它。 - Mightian
它正在工作中...我使用了错误的应用ID...我的账户里有很多测试应用...我的错。因此,从管理员账户您可以为您的应用程序添加测试人员/开发人员,如果他们是您的朋友并且必须接受您的邀请。然后,所有的测试人员/开发人员都可以使用publish_actions权限。 - santiago_apr1
非常感谢,这对我来说是解决方案。我一直在尝试从非开发者账户发布。当我切换到允许的开发者账户后,我就能够轻松地发布了。应用程序需要提交以便非开发者账户可以发布。 - Kevin Pimentel

4

目前,publish_actions 只能用于你的应用程序的测试用户和开发人员(或如果你的应用程序属于游戏类别,则可用于发布得分和成就) - 除了你应用程序的测试人员外,没有其他方法可以发布 Open Graph 对象和操作 - API 仍处于测试阶段。

[编辑] 如果你正在使用添加到时间线按钮,则可能需要在应用程序的高级设置中启用“增强的认证对话框”迁移 [/编辑]


谢谢,但我是这个应用程序的开发人员,并且正在尝试使用自己的 Facebook 帐户和分配给应用程序的测试用户进行测试。根据文档和您的回答,即使处于 beta 版本,我也应该能够在我的新闻动态或测试者的新闻动态上发布。 - ertugrul.ozturk
已更新我的回答,我漏了一个事实,那就是您正在使用添加至时间轴按钮。 - Igy
1
我已经启用了增强的认证对话框,添加了时间轴按钮,但仍然无法正常工作。原帖作者是否解决了这个问题? - RichieHH
我注意到这个问题最近收到了一次赞 - 请注意,现在这已经非常过时了 - 如果您尝试创建新的应用程序并使用publish_actions权限,则应查看有关登录审核的当前文档。 - Igy
我猜在2018年它已经更过时了?因为现在你必须通过一系列设置来请求权限。 - Supertecnoboff

1
我最近遇到了这个问题,但我成功地解决了它。 publish_actions 是 Facebook 必须手动批准应用程序使用的范围。在应用程序设置页面上开始提交需要详细描述和演示您的应用程序。在人工测试员完成对应用程序的检查后,他们会在大约一周内回答您。
之后,您的方法将完美地运作。

我已经生成了签名的APK,但是我无法使用publish_actions分享帖子,所以我需要手动请求他们的批准吗?它说“在提交之前完成此项目的注释。”? - user2056563
1
是的,您需要申请手动批准,同时附上有关您的应用程序/网站的一些屏幕截图,以便他们知道您要在用户名称下分享的上下文。我不确定,但我猜您还需要附上一个描述用例的屏幕录制视频。 - István Pálinkás
你有没有想过他们批准需要多长时间?这是否有记录? - user2056563
我在文档中没有找到这个信息,但我的经验是,他们会在2-4个工作日内回复。 - István Pálinkás

-1

你必须按照 Facebook 的标准应用程序安装过程安装该应用程序,以解决该错误!

我刚刚这样做了,错误已经消失了!


1
你指的是 Facebook 标准应用程序安装流程是什么意思? - Eenvincible

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接