发布到Facebook粉丝页面而不是我自己的Facebook墙

时间:2013-12-20 05:09:21

标签: php facebook facebook-graph-api

我是Facebook粉丝页面的管理员,我需要以管理员身份发布图片。虽然我使用此代码,但它会在我自己的Facebook墙上发布帖子。我拥有该应用的管理权限。 有什么想法吗?

<?php
    $album_id ='9543045';
    $access_token='W4997qoxbdFGLZA1d8a7JhoNoKxZBcNdFcdUXgDXa7k7oeFvKBIZA6OHf81pZAyV5nCAZD';
    $file= '/Users/bazinga/Desktop/banner1.png';
    $args = array(
       'message' => urlencode('Hello'),
        'description' => urlencode('World'),
        'access_token' => urlencode($access_token)
    );
    $args[basename($file)] = '@' . realpath($file);
    $ch = curl_init();
    $url = 'https://graph.facebook.com/'.$album_id.'/photos?access_token='.$access_token;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
    $data = curl_exec($ch);
    //returns the photo id
    print_r(json_decode($data,true));

1 个答案:

答案 0 :(得分:0)

您需要页面访问令牌才能代表页面管理员上传照片。

您可以通过https://graph.facebook.com/me/accounts?access_token=USER_ACCESS_TOKEN

获取您的网页访问令牌

另一种方法是,如果您已经知道页面ID,那么您可以直接请求

https://graph.facebook.com/PAGE_ID?fields=access_token&access_token=USER_ACCESS_TOKEN

此外,请确保您请求status_update premission,我在why does posting to facebook page yield "user hasn't authorized the application"

回答

最后一点,我认为描述 access_token $ args 数组中是多余的。