使用Graph API检索照片的图像位置

时间:2012-04-12 14:19:40

标签: javascript facebook facebook-graph-api

如果提供了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。

2 个答案:

答案 0 :(得分:1)

  • 首先加载并初始化Facebook JavaScript SDK:https://developers.facebook.com/docs/reference/javascript/ (部分载入)
  • 只有在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
...