有没有办法获取用户当前个人资料图片的图片ID?
编辑:好的,似乎没有简单的方法来获取ID!
但是,从随机测试中可以看出,每个用户都有一个属性为type="profile"
的相册,此相册中的第一张图片始终是个人资料图片,因此可以获取个人资料图片的ID那样。有一些更有经验的Facebook确认这确实是这样的吗?
答案 0 :(得分:18)
您可以从以下网址获取用户公开个人资料照片:
答案 1 :(得分:5)
答案似乎是 是
例如,相册中的照片具有ID(虽然配置文件照片是不同的对象,但是具有不同的FB ID)。每个对象的ID是FB新图API的核心概念:社交图中的每个对象都有一个 unique ID。实际上,我通过FB Graph API进行的数据请求以JSON数组的形式返回(成功时)一个响应,该响应由嵌套的ID值对组成,例如,用户对象中的教育字段:
"education": [
{
"school": {
"id": "126533127390327",
"name": "Massachusetts Institute of Technology"
},
"year": {
"id": "140829239279495",
"name": "1992"
},
"concentration": [
{
"id": "192578844099494",
"name": "Computer Science"
}
],
"type": "College"
}
profile photo是 用户 对象的连接(即每个FB对象都有字段和 Connections )。
根据相关FB Developer Page中的表格,调用Graph API请求图片(用户的个人资料照片) 会返回一个字符串,该字符串是用户个人资料照片的网址 。
但是为什么同一个电话不会返回用户的个人资料照片 ID ?
我认为原因是URL返回:
Graph API : User Properties
用户的个人资料照片不存在,但在相邻节点中:
Graph API : User : Connections : picture
(请参阅图表API结构here的FB文档)。
进行API调用时,请检查 请求标题 ,特别是 请求网址 ;当你这样做时,你会看到这样的事情:
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两端的两个较小的相邻整数字符串,应该是吧 - 换句话说,就在上面的请求网址中的32093_100005743929541_5467982。
最后,也许最好的方法是使用新的Graph API Explorer。 (我只是试图验证这一点,但我的请求仍然悬而未决。)
答案 2 :(得分:2)
有一种更简单的方法可以完成这项任务。
按https://graph.facebook.com/me/albums?access_token=获取所有脸谱相册。
循环播放相册并检查对象输入 =='个人资料'。
获取对象的值 cover_photo ,其中输入 =='个人资料'。
此 cover_photo 的值是用户个人资料照片的ID。
您可以按https://graph.facebook.com/< cover_photo值>进行检查?access_tokne =
答案 3 :(得分:1)
我不知道你是否仍然需要这个,但这是我在PHP中的方式:
$albumsfb = $facebook->api('/me/albums/?fields=type');
$albumsfb = $albumsfb['data'];
foreach ($albumsfb as $albumfb) {
if ($albumfb['type']=='profile'){
$albumprofile = $albumfb['id'];
break;
};
}
$photoprofilefb = $facebook->api('/'.$albumprofile.'/?fields=cover_photo');
$photoprofilefb = $photoprofilefb['cover_photo'];
$photoprofilefb = $facebook->api('/'.$photoprofilefb);
$fotoperfilfburl = $photoprofilefb['source'];
而不是“我”,请设置您想要的用户ID?
答案 4 :(得分:0)
http://graph.facebook.com/<SOCIAL-ID>/picture?type=<small|normal|album|large|square>
社交ID = Facebook返回了社交ID。
small | normal | album | large | square =图像大小。
答案 5 :(得分:-1)
我最近尝试使用Graph API资源管理器中的朋友个人资料图片
以下是我如何获得他当前个人资料照片的身份:
fields=friends..fields(albums.fields(photos.fields(id,name,link),name))
如果您使用过Graph API资源管理器,则在勾选复选框时,可能会注意到textEntry中生成的上述代码行。限制大小取决于你,我只是保持1以快速接收JSON对象(没有限制,我花了5分钟来获取包含大量信息的JSON对象)。
以下是您需要在Graph API中检查的内容(维护订单):
友 在朋友专辑中 在相册名称和照片中(在照片中,照片的ID和名称)
我制作了一个PHP脚本来喜欢我朋友的所有个人资料图片:)