2012-06-20 82 views
0

我目前有問題通過Facebook API上傳圖像 - 我沒有通過API返回任何錯誤,在這個時候我想這可能是文件路徑的問題我傳球是不正確的。通過Facebook上傳照片API - 路徑名問題

用戶使用該應用程序後,圖像存儲在我們的服務器上,然後我想將它發佈到Facebook。

我的代碼如下:

運行後,我沒有收到來自API響應,而如果我例如故意改變的oauth_token我收到錯誤(所以我知道數據是絕對發佈)

我還在印刷args陣列,以便我可以準確看到要發佈的內容:

這裏是回覆。

如果我在@符號後導航到URL,即使刪除了@C:\ Domains並用www替換,也會被破壞。我試圖通過在用戶實際上可以瀏覽到,如果他們知道文件名

e.g https://www.example.co.uk/competition/fb/photos/collagetest.jpg

^這是一個有效的鏈接,但經過圖像時,仍然沒有實際上傳的URL。

任何幫助將大規模讚賞!

Array ([message] => Photo from ********[image] => @C:\Domains\******.co.uk\wwwroot\v2\competition\fb\photos\collagetest.jpg) 

//upload photo 
      $file= './photos/'.basename('collagetest.jpg'); 
      $args = array(
       'message' => 'Photo from friendbooth', 
      ); 
      $args['image'] = '@' . realpath($file); 
      $ch = curl_init(); 
      $url = 'https://graph.facebook.com/photos?access_token='.$_SESSION['oauth_token']; 
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_HEADER, false); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      curl_setopt($ch, CURLOPT_POST, true); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $args); 
      $data = curl_exec($ch); 
      print_r($args); 
      //returns the photo id 
      print_r(json_decode($data,true)); 

      ?> 
      <img src="collagetest.jpg" /> 
      <? 
+0

鑽一個更多的問題----根據下面的評論我檢查如果我試圖上傳的文件是可讀的。現在,但仍然照片上傳犯規 我檢查從Facebook還沒有返回在$結果 \t \t \t \t curl_setopt($ CH,CURLOPT_URL,$ URL)返回; \t \t \t \t curl_setopt($ ch,CURLOPT_HEADER,false); \t \t \t \t curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); \t \t \t \t curl_setopt($ ch,CURLOPT_POST,true); \t \t \t \t curl_setopt($ ch,CURLOPT_POSTFIELDS,$ args); \t \t \t \t $ data = curl_exec($ ch); \t \t \t \t $ result = @json_decode($ data); 我使用的URL是有效的,因爲我有響應checkedmanually –

回答

1

如果我瀏覽到的URL @後簽字被打破

你所說的「破」的意思是?

該文件系統路徑是否可以從您的PHP腳本中讀取? (請檢查,不

即使我刪除@C:\域以及與WWW取代。我試過在URL中輸入

在這個地方給出一個URL是無稽之談 - 文件系統的路徑在這裏。 (你是是否知道之間的差異?)

+0

您好感謝 - 我用 如果(is_readable(的$ args [「形象」])) \t檢查的$ args [「形象」]路徑\t \t \t \t { \t \t \t \t \t回聲 「知道了」; \t \t \t \t} \t \t \t \t別的 \t \t \t \t { \t \t \t \t \t回聲 「該死」; \t \t \t \t \t} 不幸的是路徑不可讀。 你知道我需要採取哪些步驟來使其可讀嗎? –

0

原來這與文件路徑到底沒有關係!

加入

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

完全解決了這個問題!希望這將有助於未來的其他人。如果張貼到HTTPS的網址嘗試添加上述中,如果你沒有得到任何迴應(錯誤消息等意味着你正在得到一個迴應)