我正在尝试更新我的页面状态(从我的页面)。我已成功使用以下代码发布到页面墙上:
require_once 'facebook-php-sdk/src/facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => '...',
'secret' => '...'
));
$attachment = array(
'access_token' => "...",
'message'=> "Hello World"
);
$facebook->api('/pageId/feed','POST', $attachment);
但帖子显示我从我的帐户(即:Joe博客)发布到该页面,我希望它显示它是由页面本身发布的(即:页面名称)。
或者我是以错误的方式去做的?我是否应该尝试更改页面的状态(如果可能)?
非常感谢任何帮助。
答案 0 :(得分:1)
经过多天把头发拉过这个头发后,我似乎已经解决了这个问题。我会解释一下:
我的帖子来自我而不是网页的原因是因为我使用的access_token来自我的帐户而不是来自网页。您需要从页面本身获取访问令牌。
这里解释了这一点(http://developers.facebook.com/docs/api#auth)在“页面模拟”下
这就是我做到的。
我首先允许我的帐户使用此网址管理我拥有的网页:
https://graph.facebook.com/oauth/authorize?client_id=...&redirect_uri=...&scope=manage_pages
您将需要插入带有您的应用ID的client_id并插入重定向网址 - 您将被带到一个页面,它将要求您进行授权(您应该对其说:)
然后在php中我通过以下代码访问了我当前帐户和我管理的页面的详细信息:
require_once 'facebook-php-sdk/src/facebook.php';
$facebook = new Facebook(array(
'appId' => '...',
'secret' => '...'
));
$attachment2 = array(
'access_token' => "..." //this is my current user access_token
);
$page = $facebook->api('/me/accounts', 'get', $attachment2);
print_r($page);
这将打印出您管理的页面的详细信息以及这些页面的access_tokens(宾果!)
然后您可以使用那些/那些access_token(s)并将其插入我在上面发布的代码中并重新发送 - 它将从您的页面发布到您的页面。 :)
答案 1 :(得分:0)
您需要将粉丝页面的UID添加到api通话中。
我认为它应该是这样的:
$uid = 'your page id';
$facebook->api('/pageId/feed', 'POST', $attachment, $uid);
如果呼叫中没有提供UID,则默认为会话用户。
答案 2 :(得分:0)
pageID应定义为您尝试发布到的页面:
$pageID = "872348971237345"; //obtained from page's url
$status = $facebook->api($pageID.'/feed', 'post', $attachment);