2016-11-29 76 views
0

我想设置一个脚本来自动发布消息到Facebook页面我是管理员。我有下面的代码,但目前,我们并没有将页面墙贴到页面管理员那里,而是从我的个人帐户转到页面的“访问者帖子”部分。关于如何解决这个问题的任何想法?Facebook张贴到页面使用PHP API的页面?

require_once('Facebook/autoload.php'); 

$fb = new Facebook\Facebook([ 
    'app_id' => 'myappid', 
    'app_secret' => 'myappsecret', 
    'default_graph_version' => 'v2.5', 
]); 

$pageID = 'mypageid'; 
$accessToken = 'myaccesstoken'; 

try { 
    $publish = $fb->post('/' . $pageID . '/feed', 
    array(
     'access_token' => $accessToken, 
     'message' => $status, 
     'to' => $pageID 
     ) 
    ); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    // When Graph returns an error 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    // When validation fails or other local issues 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 
+0

为什么downvote? – user13286

回答

2

您需要使用该页面的访问令牌,而不是您的个人访问令牌。

使用您的个人访问令牌,请致电/me/accounts。它会给你一个你是管理员的页面列表,并为每个页面设置访问权限。

+0

谢谢你的帮助!我用'/ me/accounts'换出了访问令牌和API浏览器中与页面相关联的访问令牌,但是现在出现错误:'Graph返回了错误:API参数中提供了无效的appsecret_proof' I检查了应用程序的高级设置,并且我禁用了“要求应用程序秘密”。那里有任何想法? – user13286

+0

@ user13286您可能正在使用SDK的古老版本。 'Facebook \ Facebook'是旧的语法。 – ceejayoz

+0

我最终生成了一个临时访问令牌(约1小时到期),然后我使用调试器工具来延长到期时间,现在它正常工作。再次感谢你的帮助! – user13286