2012-04-12 52 views
1

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

所以,如果我需要找回我的用户配置文件PIC 我可以

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

做我的ID是100000109274242

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

哪个我的图片的实际网址。 我需要编写一个JS函数,使用它我需要检索照片的实际URL。 我不能做任何事情,因为我不明白从哪里开始使用JS。

回答

1
  • 首先加载并初始化JavaScript的Facebook的SDK:https://developers.facebook.com/docs/reference/javascript/ (部分负载)
  • 你应该FB API互动,只有当JS SDK初始化。下面是一个例子断开呼叫:

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

我在同一页面上有大约20个IDS的用户!我可以通过在上面的代码中更改ID的值来检索它们的全部吗? – 2012-04-12 18:40:09

0

如果你只是想显示你可以简单地使用直接在第一个链接的图像:

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

由于这是一个302重定向,浏览器就会进行处理并显示最终图片而不需要你用JS解决它。我不确定你是否真的想要你的JS中的URL,或者你认为你需要解决它。

顺便说一句,如果你有兴趣,这是该网址的标题响应,它发回一种类型的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 
...
+0

其实我是希望将这个响应放在灯箱中,因为我的灯箱不处理302响应,我需要给出图像的确切位置来显示它! – 2012-04-12 18:42:15