Facebook图形API:用户个人资料图片的ID

Jac*_*esB 12 facebook facebook-graph-api

有没有办法获取用户当前个人资料图片的图片ID?

编辑:好的,似乎没有琐碎的方式来获取ID!

但是,从随机测试中可以看出,每个用户都有一个带有属性的专辑type="profile",并且此专辑中的第一个图像始终是个人资料图片,因此可以通过这种方式获取个人资料图片的ID.对Facebook更有经验的人可以证实确实总是这样吗?

小智 18

您可以从以下网址获取用户公开个人资料照片:

https://graph.facebook.com/[id]/picture

参考:http: //developers.facebook.com/docs/reference/api/

  • 虽然这不会给你照片ID (12认同)

dou*_*oug 5

答案似乎是肯定的

例如,相册中的照片具有ID(虽然配置文件照片是不同的对象,但是不同的FB ID).每个对象的ID是FB新图API的核心概念:社交图中的每个对象都有一个 唯一的ID.

实际上,我通过FB Graph API进行的数据请求返回(成功时)JSON数组形式的响应,由嵌套的ID-Value对组成,例如来自User对象的教育字段:

"education": [
    {
       "school": {
           "id": "126533127390327",
           "name": "Massachusetts Institute of Technology"
    },
       "year": {
            "id": "140829239279495",
            "name": "1992"
    },
       "concentration": [
           {
                "id": "192578844099494",
                "name": "Computer Science"
           }
       ],
       "type": "College"
}
Run Code Online (Sandbox Code Playgroud)

所述简档照片是一个连接所述的用户对象(即,每一个FB对象具有字段连接).

根据相关FB Developer Page中的表格,调用Graph API请求图片(用户的个人资料照片)会返回一个字符串,该字符串是用户个人资料图片的URL.

但为什么同一个呼叫不会返回用户的个人资料照片ID

我想的原因是URL返回:

Graph API : User Properties
Run Code Online (Sandbox Code Playgroud)

用户的个人资料照片不存在,但在相邻节点中:

Graph API : User : Connections : picture
Run Code Online (Sandbox Code Playgroud)

(请参阅此处的图形API结构的FB文档).

进行API调用时,请检查请求标头,特别是请求URL ; 当你这样做时,你会看到这样的事情:

http://profile.ak.fbcdn.net/hprofile-ak-snc4/32093_100005743929541_5467982_q.jpg
Run Code Online (Sandbox Code Playgroud)

下划线之间的字符串(100005743929541)是用户ID.通过再次调用Graph API可以轻松验证这一点.从您的浏览器位置栏(假设您已登录Facebook),只需输入:

https://graph.facebook.com/me
Run Code Online (Sandbox Code Playgroud)

同样,该JSON字符串中的第一项是用户的FB ID.鉴于此,在我看来,如果用户配置文件ID确实有自己的ID,那么该字符串(用户的FB ID)加上ID两端的两个较小的相邻整数字符串应该是它 - 换句话说,上面的请求URL中的32093_100005743929541_5467982.

最后,也许最好的方法是使用新的Graph API Explorer.(我只是试图验证这一点,但我的要求是悬而未决.)