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

Retrieve the Image location for photo using Graph API

本文关键字:图像 位置 照片 检索 图形 API      更新时间:2023-09-26

使用图形API,我们可以访问任何对象(如用户,事件,照片等)的图像(如果提供了其ID)。

因此,如果我需要检索我的用户个人资料图片我可以通过以下方式做到

https://graph.facebook.com/100000109274242/picture

我的身份证是100000109274242

上面的 URL 将我重定向到 https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/49592_100000109274242_1437093998_q.jpg

这是我图像的实际URL。我需要编写一个JS函数,使用它来检索照片的实际URL。我什么也做不了,因为我不知道从哪里开始使用 JS。

  • 首先加载并初始化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>

如果您只想显示图像,您可以直接使用第一个链接:

<img src="https://graph.facebook.com/100000109274242/picture">

由于这是 302 重定向,浏览器将处理它并显示最终图片,而无需您使用 JS 解决它。我不确定您是否真的想要 JS 中的 url,或者您认为需要解决它。

顺便说一句,如果您有兴趣,这是该 url 的标头响应,它会发回一种 jpeg 和重定向到实际图形。

卷曲 --头部 https://graph.facebook.com/100000109274242/pictureHTTP/1.1 302 找到...内容类型:图像/jpeg到期: 星期六, 01 一月 2000 00:00:00 GMT位置: https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/49592_100000109274242_1437093998_q.jpg...