答案似乎是是的
例如,相册中的照片有一个 ID(不过,个人资料照片是一个不同的对象,它是一个不同的 FB ID)。每个对象的 ID 是 FB 新图形 API 的核心概念:社交图中的每个对象都有一个unique ID。
确实,我曾经通过 FB Graph API 发出的数据请求会返回(成功时)JSON 数组形式的响应,该数组由嵌套的 ID-Value 对组成,例如来自用户对象的教育领域:
"education": [
{
"school": {
"id": "126533127390327",
"name": "Massachusetts Institute of Technology"
},
"year": {
"id": "140829239279495",
"name": "1992"
},
"concentration": [
{
"id": "192578844099494",
"name": "Computer Science"
}
],
"type": "College"
}
profile photo 是 User 对象的连接(即,每个 FB 对象都有 Fields和连接)。
根据相关FB Developer Page 中的表格,调用 Graph API 请求图片(用户的个人资料照片)返回一个字符串,即 URL用于用户的个人资料图片。
但是为什么这个相同的调用不返回用户的个人资料照片ID?
我想的原因是 URL 返回:
Graph API : User Properties
用户的头像不存在,但在相邻节点中:
Graph API : User : Connections : picture
(请参阅 FB 文档了解 Graph API 结构 here)。
当您进行 API 调用时,检查 请求标头,尤其是 请求 URL ;当你这样做时,你会看到这样的东西:
http://profile.ak.fbcdn.net/hprofile-ak-snc4/32093_100005743929541_5467982_q.jpg
下划线之间的字符串 (100005743929541) 是用户 ID。这很容易通过再次调用 Graph API 来验证。从您的浏览器地址栏中(假设您已登录 Facebook)只需输入:
https://graph.facebook.com/me
同样,该 JSON 字符串中的第一项是用户的 FB ID。鉴于此,在我看来,如果用户配置文件 ID 确实有自己的 ID,那么 该字符串(用户的 FB ID)加上 ID 两端的两个较小的相邻整数字符串,应该就是这样——换句话说,就是上面请求 URL 中的 32093_100005743929541_5467982。
最后,回答这个问题的最佳方法可能是使用新的Graph API Explorer。 (我只是试图验证这一点,但我的请求被挂起。)