我正在开发一个应用程序,它使用facebook登录。登录后,用户必须设置额外的信息和个人资料图片,该图片是从该登录的facebook帐户提供的。现在,整个帐户详细信息,包括该个人资料图片的URL,都保存在我的数据库中。
令我惊讶的是,头像突然停止工作。在浏览器中打开它的URL,我会看到这样一条消息:"URL签名过期“
下载这些照片并将它们保存到我自己的服务器上对我来说并不是一个真正的选择。我能做些什么来使这个URL持久吗?
发布于 2016-01-04 23:00:08
是的,Facebook的CDN URL可能会过期-您不应该存储它们以供长期使用。
但是您可以请求任何用户的头像(只要您有他们的全局/应用程序范围的用户id),只需参考
https://graph.facebook.com/4/picture // Mark Zuckerberg’s profile pic-该URL会重定向到镜像的当前CDN URL。
这个图像相当小,50px x 50px -你可以使用https://graph.facebook.com/4/picture?type=large来请求一个更大的版本。这将为您提供200px x 200px的个人资料图像(如果用户没有上传正方形图像,则接近该大小)。
请注意,某些图片需要访问令牌才能检索。例如,除非您像这样添加访问令牌,否则https://graph.facebook.com/72256131540/picture将返回问号的通用图像:
https://graph.facebook.com/72256131540/picture?access_token=<ACCESS_TOKEN>更新:
如果你是通过应用程序范围的用户ID请求个人资料图片,这应该仍然没有问题。如果你是通过旧的全局用户id或页面范围的用户ID请求它,那么你现在必须包括一个访问令牌- https://developers.facebook.com/docs/graph-api/reference/user/picture#requirements有详细信息。
(应用程序或页面访问令牌不应该在公共客户端代码中公开,因此在使用这些令牌时,应该只在服务器端发出请求。)
https://stackoverflow.com/questions/34580136
复制相似问题