我正在开发一个显示用户/朋友照片的应用程序。在大多数情况下,我可以从相册中提取照片,但是对于用户/专辑封面照片,所有给出的是以下URL提供图像的对象ID:
https://graph.facebook.com/1015146931380136/picture?access_token=ABCDEFG&type=picture
当查看时,将用户重定向到图像文件本身,例如:
https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/420455_1015146931380136_78924167_s.jpg
我的问题是,是否有Pythonic或GraphAPI方法来解析最终图像路径,以避免将访问令牌发送给最终用户?
答案 0 :(得分:2)
获取封面照片的实际图片网址,首先你可以通过facebook api调用获取封面图片然后提取url
字段,PHP
我做的事情如下:
$cover = $facebook->api("$album_id?fields=picture&access_token=ABVHDG");
$cover_url = $cover['picture']['data']['url']; //this $cover_url is image file itself from host fbcdn-photos-a.akamaihd.net
希望有所帮助
答案 1 :(得分:2)
facebook图表api urls执行302重定向到实际拥有用户头像的CDN网址。
您可以使用urllib2
>>> import urllib2
>>> url = "http://graph.facebook.com/4/picture"
>>> req = urllib2.Request(url)
>>> res = urllib2.urlopen(req)
>>> finalUrl = res.geturl()
>>> finalUrl
'http://profile.ak.fbcdn.net/hprofile-ak-prn1/157340_4_3955636_q.jpg'
或者调用Graph api的JSON版本获取图片:
http://graph.facebook.com/4/?fields=picture&type=large
对其进行解码,然后获取url
:
{
"id": "4",
"picture": {
"data": {
"url": "http://profile.ak.fbcdn.net/hprofile-ak-prn1/157340_4_3955636_q.jpg",
"is_silhouette": false
}
}
}
提示:
答案 2 :(得分:1)
像这样进行图谱API调用,你会得到真正的网址:
是的,你不需要一个访问令牌。https://graph.facebook.com/ [FBID]字段=图片