如果提供了ID,我们可以使用Graph API访问任何对象(如用户,事件,照片等)的图像。
因此,如果我需要检索我的用户个人资料照片 我可以通过
来做到这一点https://graph.facebook.com/100000109274242/picture
我的身份证号码是100000109274242
以上网址将我重定向到https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/49592_100000109274242_1437093998_q.jpg
这是我图片的实际网址。 我需要编写一个JS函数,我需要使用它来检索照片的实际URL。 我无能为力,因为我不明白从哪里开始使用JS。
答案 0 :(得分:1)
只有在JS SDK初始化时才应与FB api进行交互。以下是关闭电话的示例:
FB.api(100000109274242+'/picture',function(userImage){
alert(userImage);
});
<强> UPD 强> 完整的例子。 HTML:
<div id="fb-root">
<!-- you must include this div for the JS SDK to load properly -->
</div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'YOUR_APP_ID', // App ID
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.api(100000109274242+'/picture',function(userImage){
alert(userImage);
});
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
答案 1 :(得分:0)
如果您只想显示图像,只需直接使用第一个链接:
<img src="https://graph.facebook.com/100000109274242/picture">
由于这是302重定向,浏览器将处理它并显示最终图片,而无需您使用JS解析它。我不确定你是否真的想要你的JS中的url,或者你认为你需要解决它。
BTW,如果您感兴趣,这是该网址的标头响应,它会发回一种jpeg并重定向到实际图形。
curl --HEAD https://graph.facebook.com/100000109274242/picture HTTP/1.1 302 Found ... Content-Type: image/jpeg Expires: Sat, 01 Jan 2000 00:00:00 GMT Location: https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/49592_100000109274242_1437093998_q.jpg ...