使用API​​将帖子上传到Facebook粉丝页面

时间:2017-08-08 06:51:26

标签: php facebook facebook-graph-api facebook-page facebook-fan-page

我写了一个代码将视频上传到我的Facebook粉丝页面,但它会上传到我的粉丝页面的社区。

有人可以帮助我,我的代码有什么问题?

我的代码:

$appId = 'xxxxxxxxxxx';
$appSecret ='xxxxxxxxxx';

$my_url = ':my website url';
$perms_str = "publish_actions";

$videoPath = 'xxxxxxxxxx';
$title = 'xxxxxxxxxx';
$descriptions = 'xxxxxxxxxxx';

if (!isset($_GET['code'])) {
    $auth_url = "http://www.facebook.com/dialog/oauth?client_id="
        . $appId . "&redirect_uri=" . urlencode($my_url)
        . "&scope=" . $perms_str;
    echo("<script>top.location.href='" . $auth_url . "'</script>");
} else {
    $token_url = "https://graph.facebook.com/oauth/access_token?client_id="
        . $appId . "&redirect_uri=" . $my_url
        . "&client_secret=" . $appSecret
        . "&code=" . $_GET['code'];

    $response = file_get_contents($token_url);
    $access_token = Json::decode($response)['access_token'];

    $fb = new Facebook([
       'app_id' => $appId,
       'app_secret' => $appSecret,
       'default_graph_version' => 'v2.10',
    ]);

    $pageId = 'xxxxxxxxxxxx';

    $fileToUpload = $videoPath ;
    $whereUpload = '/'.$pageId.'/videos';

    $data = [
        'title' => $_SESSION['fileToUpload']['title'],
        'caption' => $_SESSION['fileToUpload']['descriptions'],
        'source' => $fb->fileToUpload($fileToUpload)
    ];
}

try {
    $response = $fb->post($whereUpload, $data, $access_token);
} 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;
}

1 个答案:

答案 0 :(得分:0)

谢谢你cBroe,我添加了这段代码,这很有用

 $token_url = "https://graph.facebook.com/oauth/access_token?client_id="
    . $appId . "&redirect_uri=" . $my_url
    . "&client_secret=" . $appSecret
    . "&code=" . $_GET['code'];

 $response = file_get_contents($token_url);
 $access_token = Json::decode($response)['access_token'];

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_URL, 
     'https://graph.facebook.com/v2.10/'.$pageId.'/?
      access_token='.$access_token.'&debug=all&fields=access_token&format=json 
      &method=get&pretty=0&suppress_http_code=1');
  $content = curl_exec($ch);
  $pageAccessToken=Json::decode($content)['access_token'];