2012-02-15 92 views
0

我在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

'// graph.facebook.com'将反正是无效的网址。 – 2012-02-15 21:39:29

+4

它是一个有效的URL。它是一个协议相对URL。 – 2012-02-15 21:39:50

+0

我从这篇文章中找到它:http://paulirish.com/2010/the-protocol-relative-url/ – 2012-02-15 21:40:36

回答

1

你这样做非常认真。但是您不必担心,因为任何使用访问令牌的图API调用都会自动要求请求为https。

另一种方法:您可以在脚本结束时注销Facebook会话,这会使访问令牌失效。

在相关说明中,facebook没有提到这是安全风险。他们在通过将HTTP请求包含进来而导致访问令牌泄露方面存在问题,并且也未使用HTTPS。这两个孔都是固定的,并且非expriing标记也被删除。 https://developers.facebook.com/blog/post/497/

这里是一个很好的文章,解释的访问令牌的安全性,因为Facebook的切换到OAuth 2.0 http://www.sociallipstick.com/?p=239

0

如果您公开您的access_token,您需要采取预防措施,以便用户不会在不知情的情况下将其提供给其他人。

确保您的应用程序通过HTTPS进行通信,否则如果您的用户在公共WiFi上浏览您的网站,则可以窥探您的流量并获取access_token。这种攻击与Firesheep的工作方式类似。

如果恶意第三方获取用户的access_token,他可以通过请求查询Facebook,就好像他是您的应用一样。如果您的应用具有publish_stream或manage_friendslists权限,这可能会变得非常讨厌。

只要您的用户知道这一点,就没有问题。您不希望用户拥有的主要内容是您的应用程序的秘密密钥。在身份验证过程中,您的应用程序会告诉用户的浏览器转到Facebook并返回一个“代码”。然后,您的服务器直接连接到Facebook(用户的浏览器不知道),并将该代码与应用程序的密钥一起发送。 Facebook使用访问令牌回到您的服务器。

+0

我的确了解OAuth流程。这就是为什么我试图找到一个解决方案,不需要将access_token放在img src中。 – 2012-02-16 14:46:05