如何使用PHP SDK和图形API将状态消息发布到页面(而不是用户配置文件),同时使状态消息看起来是按页面ID而不是用户ID发布的?我的应用程序可以成功地将状态更新发布到页面墙上,但它似乎是来自管理员用户名的墙上发布,而不是来自页面名称的状态更新,就像在Facebook上本地发布的那样。换句话说,如果页面名称是"Cool Stuff“,用户名是"Joe Smith",我想在页面上发布来自"Cool Stuff”的状态更新,但我的应用程序发布的更新显示为"Joe Smith“。我已经在状态数组中显式地设置了页面id和页面名称,但似乎没有帮助。下面是我当前的代码:
$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);
有什么建议吗?
发布于 2012-02-10 22:07:25
我在下面的FB API身份验证文档中找到了解决方案:
https://developers.facebook.com/docs/authentication/
答案就在页面底部附近。搜索“页面登录”部分。基本上,您的应用程序必须查询FB以获取用户的页面访问令牌列表。您可以找到要充当的页面的令牌,并将其替换为状态消息post中的普通用户访问令牌。因此,我添加了以下代码来获取用户的页面访问令牌(您的应用程序必须具有manage_pages权限才能工作):
$all_accounts =$facebook->api(‘/me/account’);
如果使用print_r转储$all_accounts,您将看到它是一个由页面名称和访问令牌组成的数组。获取所需页面的令牌,并将$facebook-> access _token (用户的访问令牌)替换为我在最初问题中发布的代码中的页面令牌。它会将状态作为页面管理员而不是用户发布到页面。
发布于 2012-02-09 23:49:53
如果您是该页面的管理员,只需进行身份验证并将状态作为页面的UserID而不是您的UserID发送即可。它们是两个不同的实体。
这样做将解决您的问题:-)只需确保先根据您的应用程序手动验证您的页面:-)
https://stackoverflow.com/questions/9220474
复制相似问题