2011-06-28 9 views
0

私は、サーバ側のプロセスを使わずにグラフapiを介してFacebookに写真をアップロードする最良の方法を探しています。 これまでの実装では、javascript(jQuery)とHTML form-submitを使用しています。以下のコード:グラフ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" 
} 

result iframeの内容は異なるドメイン(graph.facebook.com)から来ているようです。セキュリティ上の理由から、javascriptで写真IDを取得することはできません。

質問はそれです。
この場合、iframeコンテンツを取得する方法はありますか?または、私が逃した他の方法は、より直接的にFacebookのグラフAPIからの応答を得ることができますか?

ありがとうございました。

答えて

0

sourceパラメータを使用して特定の送信元URLを設定し、最後の1または2または5の写真を検索し、一致するソースがあるものを検索することしか考えられません。

関連する問題