如何使用应用程序发布到我自己的Facebook页面?

时间:2013-01-20 11:23:58

标签: php facebook facebook-graph-api

  

可能重复:
  Facebook Graph Api - Posting to Fan Page as an Admin

我写了下面的代码:

$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)用户尚未授权应用程序执行此操作

2 个答案:

答案 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>");

} }