在通过图表API将照片提交到Facebook后,如何获取照片ID?

时间:2011-06-28 06:57:51

标签: javascript facebook-graph-api

我正在寻找通过图形api上传照片到Facebook的最佳方式,无需任何服务器端进程。 到目前为止我所做的实现是使用javascript(jQuery)和HTML form-submit。代码如下:

<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>

点击上传按钮后。照片已成功上传,我可以看到照片ID出现在结果iframe中。

{
   "id": "123456789"
}

似乎因为结果iframe的内容来自不同的域(graph.facebook.com)。出于某些安全原因,我无法通过javascript从中获取照片ID。

问题在于。
在这种情况下,有没有办法获得iframe内容?或者,有没有其他方式我错过了可以从Facebook图形api呼叫更直接得到响应?

感谢。

1 个答案:

答案 0 :(得分:0)

我唯一能想到的是使用source参数设置特定的源网址,然后检索最后的1张或2张或5张照片并搜索具有匹配源的照片。