2012-02-09 51 views
0

如何使用PHP SDK和图形API将状态消息发布到页面(而不是用户配置文件),同时让状态消息显示为由页面ID而不是用户ID发布?我的应用可以成功发布状态更新到页面墙,但它似乎是来自管理员用户名的墙贴,而不是从页面名称的状态更新,因为它会在Facebook上本地发布。换句话说,如果页面名称是“Cool Stuff”,用户名是“Joe Smith”,我想在“Cool Stuff”页面上发布状态更新,但我的应用程序帖子从“Joe Smith”中显示的更新。我已经明确地设置状态数组中的页面ID和页面名称,但它似乎没有帮助。这是我现在的代码:如何使用页面名称而不是用户名称将状态发布到Facebook页面?

$post_info = array(
'access_token' => $facebook->access_token, 
'type' => 'status', 
'message' => 'Hello World!', 
'from' => array('id' => $page_id, 'name' => $page_name) 
); 
$facebook->api('/' . $page_id . '/feed/', 'post', $post_info); 

有什么建议吗?

+0

[SDK:发布为网页上的页面]的可能副本(http://facebook.stackoverflow.com/questions/8742607/sdk-post-as-page-on-a-page) – DMCS 2012-02-10 12:22:26

回答

0

如果您是该页面的管理员,只需简单地进行身份验证并将状态作为页面的UserID而不是您的UserID发送即可。他们是2个不同的实体。

否则,将解决你的问题:-)只要确保对您的应用程序第一次:-)手动验证您的网页

1

,我发现在这里FB API认证文档解决这个:

https://developers.facebook.com/docs/authentication/

答案是靠近页面底部的。搜索“页面登录”部分。基本上,您的应用程序必须查询FB以获取用户的页面访问令牌列表。您可以找到要用作页面的令牌,并将其替换为状态消息帖子中的普通用户访问令牌。因此,我添加了此代码以获取用户的页面访问令牌(您的应用必须具有manage_pages权限才能使其工作):

$ all_accounts = $ facebook-> api('/ me/accounts');

如果您使用print_r转储$ all_accounts,您会看到它是一组页面名称和访问令牌。抓取您想要的页面的标记,并用我在第一个问题中发布的代码中的页面标记替换$ facebook-> access_token(用户的访问标记)。它会将页面状态作为页面管理员而不是用户发布到页面上。

相关问题