使用 facebook API 的 stream.publish 方法时出现权限错误

Posted

技术标签:

【中文标题】使用 facebook API 的 stream.publish 方法时出现权限错误【英文标题】:Getting Permissions error while using stream.publish method of facebook API 【发布时间】:2009-11-10 06:28:10 【问题描述】:

您好,我想在用户的墙上发布帖子,但在尝试使用 facebook api 的 stream.publish 方法时收到此“权限错误”错误代码 200...我已请求扩展权限:

http://m.facebook.com/login.php?api_key="+API_KEY&....&req_perms=read_stream,publish_stream,offline_access

但是当我调用 stream.publish 方法时,我收到了这个权限错误。似乎上面 url 中的 req_perms 只是被忽略了。 我将 "method(stream.publish)","api_key","message","session_key","v","sig" 作为参数传递给 url http://api.facebook.com/restserver.php?

如果有人能帮助我解决这个问题或为我提供在用户墙上发布帖子的正确步骤将非常感激...该应用程序正在 blackbery 平台上开发..

【问题讨论】:

如果我的问题得到了有希望的答案,yoc 可以看到自己。 【参考方案1】:

我认为您不能从 login.php 请求权限。而是查看 prompt_permissions.php

http://wiki.developers.facebook.com/index.php/Authorization_and_Authentication_for_Desktop_Applications

【讨论】:

【参考方案2】:

在尝试 stream.publish 之前,您能否检查一下您是否从 facebook 获得了有效会话?如果您获得了offline_access 扩展权限,您将拥有一个 expires=0 的会话对象。

您也可以尝试调用 users.hasAppPermission API 方法来验证您是否获得了权限。

您只是直接向http://api.facebook.com/restserver.php 发帖吗?您是否在 POST 正文中包含请求数据?您还应该在标头中包含一个 Content-Type: application/x-www-form-urlencoded 标头。

我认为直接调用 restserver.php 可能会很棘手。有没有可以使用的客户端库,比如 javascript 客户端库?

【讨论】:

以上是关于使用 facebook API 的 stream.publish 方法时出现权限错误的主要内容,如果未能解决你的问题,请参考以下文章

facebook 聊天 api - php

facebook api:请求publish_stream是不是需要用户每次登录时的确认

标签字段在使用 facebook api 和 php 时返回 NULL

尝试使用 Graph API (Facebook C# SDK) 更新 Facebook 事件

Facebook PHP API 订阅问题

通过图形 api 从 php 发布 Facebook 帖子