我可以使用以下代码更新PROFILE墙上的状态:
require_once 'facebook-platform/php/facebook.php';
$facebook = new Facebook('APP API KEY','APP SECRET KEY');
$user_id = 'MY USER ID';
$facebook->api_client->users_setStatus('This is a new status');
...授权使用此地址后: http://facebook.com/authorize.php?api_key=MYAPPAPIKEY&v=1.0&ext_perm=publish_stream
但是,此代码无法更新我的Facebook PAGE Wall上的状态。是否有其他参数可以添加到authorize.php网址以指定授权PAGE而不仅仅是我的个人资料?
或者,有没有更好的方法来发布粉丝页面墙的更新?
谢谢!
答案 0 :(得分:21)
我通过咨询Facebook desktop application documentation解决了这个问题(即使这是一个Web应用程序)。
然后,我需要使用此url向PAGE授予'publish_stream'权限(替换'MYAPIKEY'和'THEPAGEID'): http://www.facebook.com/connect/prompt_permissions.php?api_key=MYAPIKEY&v=1.0&next=http://www.facebook.com/connect/login_success.html?xxRESULTTOKENxx&display=popup&ext_perm=publish_stream&enable_profile_selector=1&profile_selector_ids=THEPAGEID
然后,我可以使用以下代码发布到粉丝页面墙:
require_once 'facebook-platform/php/facebook.php';
$facebook = new Facebook(MYAPIKEY, MYAPISECRET);
try{
$facebook->api_client->stream_publish('INSERT_STATUS_HERE',null,null,null,'THEPAGEID');
}catch(Exception $o ){
print_r($o);
}
答案 1 :(得分:0)
基于以上所述,我在图API授权网址上尝试了几个查询字符串参数,看起来有效:
编辑:没关系,以上显示所有UI正确,但仍然得到“(#200)用户没有授权应用程序执行此操作”错误---很明显它不起作用,因为访问令牌包含我的USER ID,但不包含页面的ID。