2010-08-09 73 views
1

我有一些使用Facebook圖形API的問題。Facebook圖形API和PHP SDK問題

1)。 當我嘗試上傳照片時,出現以下錯誤消息「(#324)需要上傳文件」。

$attachement = array(
          'access_token'=> (...)', 
          'name' => 'uploaded foto', 
          'source' => 'C:\Documents and Settings\Username\Desktop\1.jpg' 
        ); 

     $fb_foto = $fb->api('me/photos','POST',$attachement); 

我確定該來源是正確的。我曾經嘗試過從互聯網上的照片,而不是從本地電腦也。 2)。我怎樣才能從Facebook上刪除一個對象? (例如壁信息)。 我試過這個: $ fb-> api('/ post_id','POST',array('method'=>'delete'));

但我得到「不支持的POST請求」錯誤。

任何幫助,將不勝感激。

編輯:這裏是我發現上傳照片到Facebook的完整解決方案。你需要有PHP SDK版本2.1.1或以上

$fb = new Facebook(array(
         'appId' => ..., 
         'secret' => ..., 
         'cookie' => true, 
     )); 

$fb->setFileUploadSupport(true); 
     $attachement = array(
          'access_token'=> '...', 
          'name' => 'uploaded foto', 
          'source' => '@absolute_path_to_the_file' 
        ); 



     $fb_foto = $fb->api('me/photos','POST',$attachement); 
+0

$ attachchement包含什麼? – Sebs 2010-08-09 11:03:49

+0

我已經編輯了$附件的完整詳細信息。 – brpaz 2010-08-11 09:59:33

回答

1

關於你的第二個問題,我記得某處讀到一個DELETE請求,而不是POST。請參閱: http://developers.facebook.com/docs/api#deleting

+0

我知道我在某處看過它。謝謝 – brpaz 2010-08-11 09:54:30

+0

這個工作適合你嗎? (對照片發出DELETE請求?) – rinogo 2010-12-14 08:59:50

1

閱讀the documentation

curl -F 'access_token=...' \ 
    -F '[email protected]' \ 
    -F 'message=Caption for the photo' \ 
    https://graph.facebook.com/me/photos 

source參數是如何格式化?

$fb_foto = $fb->api('me/photos','POST',array(
    'access_token' => (...) 
    , 'message'  => 'Caption' 
    , 'source'  => '@' . realpath('path/to/file') 
)); 

要刪除照片,再次the documentation有你的答案:發出DELETE請求

$fb->api('/PHOTO_ID', 'DELETE'); 
+1

我試過了,但仍然得到相同的錯誤。我唯一的解釋是因爲我在本地主機工作。 Anywhay我沒有任何其他問題(張貼到牆上,發表評論等)。 $ attachchement = array( 'access_token'=>(...) 'name'=>'uploaded foto', 'source'=>'@'。realpath('C:\ Documents and Settings \ Username \ Desktop \ 1.jpg') ); $ fb_foto = $ fb-> api('me/photos','POST',$ attachement); – brpaz 2010-08-11 10:24:32

+0

哦,絕對因爲localhost – 2010-08-11 14:39:48

+0

不,它不是localhost。這是一個與PHP SDK的錯誤。我已更新到2.1.1版本並添加以下行:$ fb-> setFileUploadSupport(true); 現在一切正常。 – brpaz 2010-08-16 10:11:47

1

我使用這種方法與新的PHP SDK(2.1.1,Facebook的PHP-SDK -v2.1.1-0-g08909f3.zip)上傳新照片。下面的php代碼創建事件。

 
$fname="/tmp/foo.jpg"; 
$attachment = array(
     'access_token' => $facebook->getAccessToken(), 
     'name' => substr(event_name), 
     'description' => my_description, 
     'start_time' => my_start_time, 
     'link' => my_link, 
     'source'=> '@'.$fname 
     ); 
$result = $facebook->api('/me/events', 'POST', $attachment);