eri*_*bae 75 profile facebook image
Facebook图形API告诉我,我可以获得用户使用的个人资料图片
http://graph.facebook.com/517267866/picture?type=large
哪个工作正常.但是,当您在浏览器中键入上述URL时,图像的实际地址为
http://profile.ak.fbcdn.net/profile-ak-snc1/v227/560/83/n517267866_1928.jpg
如何以编程方式使用第一个URL获取第二个URL?
jos*_*736 73
第一个URL为第二个URL提供HTTP 302(临时重定向).因此,要以编程方式查找第二个URL,您可以为第一个URL发出HTTP请求并获取Location
响应的标头.
也就是说,不要依赖第二个URL是永久性的.稍微阅读HTTP响应代码(302而不是永久301),Facebook可能会定期更改这些URL,以防止人们 - 例如 - 使用他们的服务器来托管图像.
编辑:请注意,OP发布的CDN URL现在是404,因此我们知道我们不能依赖URL是长期存在的.此外,如果您从<img>
受SSL保护的页面链接到Graph API ,则必须添加一个参数以确保使用.https://graph.facebook.com
更新: API 添加了一个参数 - redirect=false
- 导致返回JSON而不是重定向.重新构建的JSON包含CDN URL:
{
"data": {
"url": "http://profile.ak.fbcdn.net/...",
"is_silhouette": false
}
}
Run Code Online (Sandbox Code Playgroud)
同样,我不会依赖这个CDN URL是长寿的.JSON响应通过允许的CORS头发送,因此您可以使用XHR请求自由地执行此客户端.
小智 36
http://graph.facebook.com/517267866/?fields=picture&type=large
将以JSON格式返回URL
joa*_*nna 16
我意识到这已经很晚了,但还有另一种方法来获取配置文件图像的URL.
对于原始网址,您可以添加参数redirect=false
以获取通常重定向到的图像的实际网址.
因此,新请求看起来像http://graph.facebook.com/517267866/picture?type=large&redirect=false.这将返回一个JSON对象,其中包含图片的URL和一个布尔值is_silhouette(如果图片是默认的Facebook图片,则为true).
图片的大小也是您指定的大小.您可以通过添加尺寸来额外测试:http://graph.facebook.com/517267866/picture?type = alar&redirect = false&width = 400&high = 400
对于其他想要在iOS中获取个人资料照片的人:
我这样做是为了得到用户的Facebook照片:
NSString *profilePicURL = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large", fbUserID];
Run Code Online (Sandbox Code Playgroud)
其中'fbUserID'是Facebook用户的个人资料ID.
这样我就可以随时调用profilePicURL中的url来获取图像,我总是得到它,没问题.如果您已经拥有用户ID,则不需要任何API请求,只需在facebook.com/之后将ID粘贴到URL中即可.
对于在iOS中需要fbUserID的人来说,仅供参考:
if (FBSession.activeSession.isOpen) {
[[FBRequest requestForMe] startWithCompletionHandler:
^(FBRequestConnection *connection,
NSDictionary<FBGraphUser> *user,
NSError *error) {
if (!error) {
self.userName = user.name;
self.fbUserID = user.id;
}
}];
}
Run Code Online (Sandbox Code Playgroud)
你需要一个活跃的FBSession才能工作(参见Facebook的文档,以及"美味"的例子).
如果你想要一个高质量的个人资料图片的JSON与URL,你可以使用:
http://graph.facebook.com/517267866/picture?height=1024&redirect=false
如果你只是需要图片使用它没有参数重定向:
http://graph.facebook.com/517267866/picture?height=1024
517267866是上述示例之一的配置文件ID.把你需要的Facebook ID
我希望有所帮助
归档时间: |
|
查看次数: |
129393 次 |
最近记录: |