2011-09-04 30 views
3

使用Facebook的圖形API,我通過表單上傳從我的iframe應用程序中的照片:圖形API PHP照片上傳應用程序的端點/響應問題

echo '<form enctype="multipart/form-data" action="' 
.$graph_url .' "method="POST">'; 
echo 'Please choose a photo: '; 
echo '<input name="source" type="file"><br/><br/>'; 
echo 'Say something about this photo: '; 
echo '<input name="message" 
    type="text" value=""><br/><br/>'; 
echo '<input type="submit" value="Upload"/><br/>'; 
echo '</form>'; 

$ graph_url是這種形式像這樣前的定義:

$graph_url= "https://graph.facebook.com/me/photos?" 
    . "access_token=" .$access_token; 

這就是工作,我可以用我的應用程序將照片上傳至用戶的特性,但是一旦圖片上傳到我的iFrame的內容被替換爲圖中的「響應」:

例如:

{ 
    "id": "1001207389476" 
    } 

我想避免這種情況顯示,而是顯示一個成功的屏幕顯示可能鏈接到newely上傳的圖片也。

有誰知道我該怎麼做?在過去的三天裏,我一直在試圖做我的頭髮!

僅供參考,這裏是來自那裏我得到了我的代碼教程: https://developers.facebook.com/blog/post/498/http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development-php-sdk-3-0/

乾杯。

回答

0

我能想到的一個解決方案就是您可以使用try catch塊來捕捉照片上傳代碼。如果沒有發生異常,並且您獲得了上傳的圖片ID。您可以打印「照片上傳成功」,而不是顯示圖片ID。

獲取圖片的鏈接。你確實需要使用你的圖片ID。你可以嘗試 graph.facebook.com/your-pic-id(可能帶有一些access_token),並且在它裏面,你可以得到這張圖片的鏈接。

看到照片的圖形API:HTTPS://developers.facebook.com/docs/reference/api/photo/

希望它能幫助。

+0

嗨,謝謝你的回覆。我試圖給這個前,但我不知道如何使用catch。我會繼續阻止它。 – Andy

0

你試過在$ graph_url中定義一個redirect uri嗎?不知道Facebook期望的參數的確切名稱,但我認爲它是redirect_uri。

Edit_:爲了使問題更加清楚,Facebook將在Graph URL中查找該參數,並在您的請求完成後重定向到該URI。所以你可以定義http://yourdomain.com/yourapp/upload_finished.php。我不是100%確定他們是否也會將上傳的照片的ID傳遞給此URI,但情況應該如此。

+0

你好。謝謝你的回覆。我已經嘗試過這一點,似乎重定向鏈接不起作用。在PHP中我並不太熱,所以在我用過的Thinkdiff代碼中可能會出現一些導致我的問題的東西,但我看不到它。 – Andy

0

將附加屬性添加到表單標籤: 您可以使用JavaScript完成所有任務,例如顯示消息或成功屏幕。

+0

+0

嗨,謝謝你,我給了它一個快速嘗試,但它看起來像我將不得不通過JavaScript提交表單,並停止defaultsubmit行動,否則我仍然會遇到同樣的問題該功能已執行後。這聽起來是對的嗎? – Andy

+0

可能會使用提交按鈕重新定位你?嘗試標準按鈕,並在JavaScript中調用表單提交。 http://w3schools.com/html/html_forms.asp –