0

我寫了一段代碼,將視頻上傳到我的Facebook粉絲頁面,但它會上傳到我的粉絲頁面社區。使用API​​上傳到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; 
} 
+0

你沒有使用一個頁面訪問令牌... – CBroe

+0

究竟在何處,我做它實際上 $ access_token = Json :: decode($ response)['access_token']; – vm30

+0

這是從登錄流程返回的代碼參數中檢索_user_訪問令牌的端點。如果您想以頁面名稱執行任何操作,則需要使用_page_訪問令牌。 https://developers.facebook.com/docs/facebook-login/access-tokens/ – CBroe

回答

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'];