2012-08-24 133 views
0

當試圖將照片發佈到相冊時(作爲頁面,使用從「/ page_id?fields = access_token」獲得的頁面訪問令牌)我得到新創建的對象的ID。但是,當試圖在圖形瀏覽器中檢查它時,此ID僅返回「false」。此外,該照片似乎並未出現在所選專輯(或其他任何地方)中。FB:無法將照片發佈到Facebook頁面上的相冊

的代碼非常簡單:

$facebook->setFileUploadSupport (true); 
$page_at = $facebook->api ('/'.option::get_value ('page_id').'?fields=access_token'); 
$page_at = $page_at['access_token']; 
$args = array(); 
$args['message'] = $this->text; 
$args['image'] = '@' . realpath ($filename); 
$args['access_token'] = $page_at; 
$photo = $facebook->api ('/'. option::get_value ('album_id') . '/photos', 'post', $args); 

選項::的get_value()只返回(正確的,我三重檢查)相冊ID。此外,所述圖像是.PNG和我任何沒有錯誤消息,一切的Facebook返回是ID:

陣列(1){[ 「ID」] =>串(15) 「188538791279108」}

這是一個Facebook錯誤還是我錯過了明顯的東西?

+0

'$ args ['image'] ='@'。 realpath($ filename);'這隻返回規範化的絕對​​路徑名。要將圖片上傳到臉書,您必須通過域名的完整路徑。 'http:// somesite.com/images/myimage.png' –

+0

不幸的是,它確實是完整的物理路徑,當我將它改爲虛假路徑時,我已經從我的腳本獲取HTTP 500,因爲它無法找到文件。你確定我需要傳遞一個URL來使其工作嗎? –

+0

是的。你必須通過完整的imageurl來源。 –

回答

1

而不是'圖像'參數,請嘗試'源'。剛剛試了一下,它爲我工作(發佈到一個頁面所擁有的專輯):

$args['source'] = '@'.realpath($filename); 

同時,確保上傳的文件具有非零文件大小:

error_log('file size: '.$_FILES["file"]["size"]); 

和雙使用Debugger檢查訪問令牌具有manage_pages,publish_stream權限。

+0

謝謝!出於某種原因,我忘記了publish_stream權限.. –