我写了下面的代码:
$pageId = 'xxx';
$appId = 'xxx';
$secret = 'xxx';
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $secret,
'cookie' => false
));
$access_token = $facebook->getAccessToken();
$facebook->api("/{$pageId}/feed", "post", array(
'message' => "First message",
'name' => "Name for first",
'access_token' => $access_token
));
但是得到以下异常: (#200)用户尚未授权应用程序执行此操作
答案 0 :(得分:0)
您是否检查过用户是否已登录?很简单,但我没有在你的代码中看到它。
你可以先检查$ facebook-> getUser()是否为空,如果null重定向到$ facebook-> getLoginUrl(array('req_perms'=>'user_status');并确保添加其他权限你可能需要。
This question非常相似,通读了一些答案 - 应该有一个适合你的。
答案 1 :(得分:0)
您的代码中需要* publish_stream *权限。 它可以是:
$my_url = "http://apps.facebook.com/siegiusarena";
//获取用户ID $ user = $ facebook-> getUser();
if($ user){
$message=$application_name." game on facebook. Check it out: http://apps.facebook.com/siegiusarena";
$link = "http://apps.facebook.com/siegiusarena";
$attachment = array('message'=>$message, 'link'=>$link, 'picture'=>'http://www.developas.com/fb/siegiusarena/siegiusarena_256x256.jpg');
$facebook->api("me/feed", 'post', $attachment);
}否则{ $ code = $ _REQUEST [“code”];
if(empty($code)) {
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection
$dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
. $appid . "&redirect_uri=" . urlencode($my_url) . "&state="
. $_SESSION['state'] . "&scope=email,publish_stream";
echo("<script> top.location.href='" . $dialog_url . "'</script>");
} }