2013-02-19 153 views
0

我试图创建一个使用PHP SDK的Facebook本机应用程序,以便我可以自动发布链接和事件到页面我自己从cron服务中随时获得。发布到本地PHP应用程序的Facebook页面


我得到了应用程序访问令牌,并给这个应用程序所需的所有特权:publish_stream,manage_pages和create_event。

随着图形API,我可以张贴到我的用户个人资料页简单的调用:

$facebook->api("/" . USER_ID . "/feed", 'post', $tmp_fields); 

,但我不能发布具有类似的页面:

$facebook->api("/" . PAGE_ID . "/feed", 'post', $tmp_fields); 

而且我不能让网页凭据与/USER_ID/accounts因为它返回:

{ 
    "error": { 
     "message": "(#15) This method is not supported for native apps", 
     "type": "OAuthException", 
     "code": 15 
    } 
} 

也无法访问/PAGE_ID/?fields=access_token,因为它只是返回页面的id字段。


那么,什么是张贴到用户的页面为独立的应用程序可以是例如从cron每隔一周左右运行的正确方法。如何从原生应用中的App Access Token获取页面访问令牌?

+0

我不认为你明白一个“原生”的应用程序是什么。 – 2013-02-21 13:08:21

+0

无需进一步解释,您的评论并不真的有帮助...我想创建独立的应用程序,它将发布到Facebook页面的墙上。我可能想通过在桌面上双击它的图标或通过cron/scheduler来解雇它。 – 2013-02-27 02:16:53

+0

然后,PHP不是当地桌面应用程序的最佳选择。 PHP被解释了,它需要一个服务器来运行。桌面应用程序通常用C语言的一些衍生物编写,然后编译成程序。 – 2013-02-27 09:55:36

回答

0

Graph API的某些方法不适用于桌面或移动(“本机”)应用程序。 A related bug report我发现这表明,这是因为桌面应用程序必须将其应用程序秘密存储在其应用程序中(这可能会导致它被反编译并用于进行恶意API调用)。

如果此Facebook应用程序仅供您个人使用,或者如果您未在其中嵌入应用程序秘密,则可以通过将Facebook应用程序的类型更改为Web应用程序的“高级”部分来解决此限制应用程序的设置:

+0

感谢Martey的回复。我为其他FB应用程序使用了Web应用程序类型,但我认为这是一种破解,而不是解决方案。请注意,目前,使用原生应用程序(!),我*可以*发布给用户供稿...问题是我无法发布到用户拥有的页面供稿,尽管我拥有正确的权限。因此,我仍然不知道为什么本机应用可以发布到用户页面(不需要Web应用类型),但不能发布到同一用户拥有的页面Feed ... – 2013-03-01 12:25:43

+0

如果您认为这是一个错误,您应该报告给Facebook。我认为这很可能是“按设计”。请注意,您的问题不是发布到页面的Feed失败,而是本机应用程序无法访问“帐户”连接。我特别引用了有关创建测试用户的错误,因为它使用了类似的API端点。 – Martey 2013-03-01 12:55:30

相关问题