我完全新的Facebook應用程序的開發,所以請多多包涵。Facebook上創建應用程序的頁面將照片上傳至網頁的相冊
我被要求創建一個Facebook頁面,其中有一個應用程序可以讓用戶將照片上傳到頁面的相冊中。
我設法創建了頁面,我們稱之爲MyPage
。我還創建了一個應用程序MyApp
,我已經添加了應用到頁面的個人資料。現在,當您查看MyPage
輪廓,在左側(標籤),你會發現已經MyApp
。
MyApp
指向我的託管帳戶上的一個php頁面。它有一個文件域的表單:
<form action="<?=$PHP_SELF;?>" enctype="multipart/form-data" method="post">
<input name="MAX_FILE_SIZE" type="hidden" value="10000000" />
<input id="fileSelect" name="fileSelect" type="file" />
<input name="submit" type="submit" value="Upload" />
</form>
和下面的代碼來處理上傳的文件,也應該投入MyPage
的專輯:
if(count($_FILES)){
$name = ereg_replace(' ', '_', basename($_FILES['fileSelect']['name']));
$uploadFile = "uploads/" . $name;
if (move_uploaded_file($_FILES['fileSelect']['tmp_name'], $uploadFile)) {
$facebook->setFileUploadSupport(true);
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($uploadFile);
$data = $facebook->api('/THE_ALBUM_ID/photos', 'post', $args);
//get rid of the original on the main server
unlink($uploadFile);
}
}
然而,當‘上傳’按鈕提交後,我得到這個錯誤,就在MyPage
的IFRAME爲MyApp
:
Fatal error: Uncaught OAuthException: (#120) Invalid album id thrown in /COMPLETE_PATH/facebook-php-sdk/src/base_facebook.php on line 1033
即使壽相冊ID確實是正確的,並顯示在我使用圖形API Explorer或graph.facebook.com/THE_ALBUM_ID
順便說一句,我把這個腳本的頂部:
require 'facebook-php-sdk/src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'THE_APP_ID',
'secret' => 'THE_APP_SECRET',
));
我缺少什麼?任何幫助將非常感激。
想澄清您的解決方案。當你說「授予你傳入的令牌」時,你是指用戶的令牌訪問我的應用程序?或者這是服務器端擁有頁面所有者憑證的令牌? – mateuscb
注意:權限應該是'photo_upload'而不是'uploads_photos'。 – Raptor
cURL方法不起作用。照片上傳到用戶的相冊,而不是正確的相冊ID被選中和相關的權限被授予。此外,令牌由頁面管理員生成。 – Raptor