2011-06-28 190 views
0

我正在尋找通過圖形api上傳照片到Facebook的最佳方式,而無需任何服務器端流程。 到目前爲止我所做的實現是使用javascript(jQuery)和HTML表單提交。代碼如下:如何通過圖形API將照片提交給Facebook後獲取照片ID?

<form action="" method="POST" enctype="multipart/form-data" target="result"> 
    Please choose a photo: <input name="source" type="file"><br/> 
    Say something about this photo: <input name="message" type="text" value=""><br/> 
    <a id="upload-button" href="javascript:;">Upload</a> 
</form> 

<iframe id="result" src="" name="result" frameborder="1" 
style="height:75px;" onload="finish_upload(this);"></iframe> 

<script> 
function finish_upload(iframe){ 
    //An exception thrown. iframe.contentWindow.document is undefined. 
    var content = iframe.contentWindow.document.body.innerHTML; 
    console.log(content); 
} 

$(function(){ 
    $('#upload-button').click(function(){ 
     var access_token = getToken(); 
     var url = "https://graph.facebook.com/me/photos?access_token=" + access_token; 
     $('form').attr('action', url).submit(); 
    }); 
}); 
</script> 

上傳按鈕被擊中後。該照片已成功上傳,我可以看到在結果iframe中出現了照片ID。

{ 
    "id": "123456789" 
} 

看來,由於結果iframe的內容來自不同的域(graph.facebook.com)。出於某些安全原因,我無法通過javascript獲取照片ID。

問題是這樣的。
在這種情況下,有什麼方法可以獲取iframe內容?或者,有沒有其他方式我錯過了,可以更直接地從facebook圖表API調用響應?

謝謝。

回答

0

我唯一能想到的就是使用source參數設置特定的源URL,然後檢索最後的1或2或5張照片並搜索具有匹配來源的照片。