我在PHP上使用Graph Api来获取用户的相册。
当我展示它们时,我还想展示每张专辑的封面照片。我确实在每张专辑中都获得了[cover_photo]
属性,但我想展示该图片,而无需为每张照片发出新请求,以获取所有相片的source
网址。
有没有办法做到这一点?
我尝试(没有成功)获取照片,执行以下操作:
<img src="//graph.facebook.com/<?=$album['id'] ?>/picture">
我读了a post about it解决方案的地方:
https://graph.facebook.com/<id>/picture?type=album&access_token=<token>
但我不能公开将access_token放在img src中......我可以吗?
答案 0 :(得分:1)
这样做是非常认真的。但您无需担心,因为任何使用访问令牌的图形api调用都会自动要求请求为https。
另一种方法:您可以在脚本末尾注销Facebook会话,这将使访问令牌无效。
在相关的说明中,facebook并未将此视为安全风险。他们在HTTP请求中包含泄漏的访问令牌时遇到了问题,而且还没有使用HTTPS。这两个孔都是固定的,并且还没有去除非过期的令牌。 https://developers.facebook.com/blog/post/497/
这是一篇很好的文章,解释了Facebook切换到Oauth 2.0后访问令牌的安全性 http://www.sociallipstick.com/?p=239
答案 1 :(得分:0)
如果您将access_token公开,您希望采取预防措施,以便用户不会在不知情的情况下将其提供给其他人。
确保您的应用通过HTTPS进行通信,否则如果您的用户正在公共wifi上浏览您的网站,则有人可以窥探您的流量并获取access_token。黑客攻击与Firesheep的工作方式类似。
如果恶意第三方获取用户的access_token,他可以向Facebook查询请求,就像他是您的应用程序一样。如果您的应用具有publish_stream或manage_friendslists权限,则可能会非常讨厌。
只要您的用户意识到这一点,就可以了。您不希望用户拥有的主要内容是您的应用程序的密钥。在身份验证过程中,您的应用会告诉用户的浏览器转到Facebook并返回“代码”。然后您的服务器直接连接到Facebook(用户的浏览器不知道),并将该代码与您的应用程序的密钥一起发送。 Facebook使用访问令牌返回您的服务器。