使用Facebook图表,使用access_token进行客户端照片访问

时间:2012-12-02 09:38:19

标签: facebook facebook-graph-api facebook-access-token

我有一个应用程序,包括显示用户的Facebook帐户中的一些照片。我目前正在使用fb_graph gem来做这件事(这是一个Ruby项目)。

我可以毫无问题地获取网址,但我无法解决的问题是,如果用户从Facebook帐户中退出,用户是否能够看到我的网页上显示的这些照片。网址如下:http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/<id>.jpg

但是,有一个显而易见的工作。我可以将用户的访问令牌附加到URL上,因此他们具有查看我所做照片的相同权限:``http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/。jpg?access_token =`。

像{{}}}这样的问题表明它应该是使用access_token客户端的最后手段,但我认为我必须(因为并非所有照片都会公开)。

这个问题http://developers.facebook.com/docs/authentication/client-side/说,因为我得到令牌服务器端,它将持续60天。所以我想小心使用它。

然后有两个问题:这是否适用于查看照片,是否有更好的方式不会暴露access_token

3 个答案:

答案 0 :(得分:0)

在任何情况下都不要将访问令牌放在您网页上的任何内容网址中,或者您从第三方网站引入的任何资源都会在引荐来源标头中公开用户的访问权限

您可以直接访问从API检索照片的网址,而无需访问令牌

答案 1 :(得分:0)

您可以访问https://sphotos-a.xx.fbcdn.net/hphotos-ash3/168119_10150146071831729_5116892_n.jpg吗?我想你可以这样,因为它在facebook cdn上。你得到这个链接并非偶然。为了实现此步骤,您需要使用访问令牌和“user_photos”权限(您似乎已经在执行此操作)访问用户的相册和照片。

从技术上讲,你的制作应该没问题(除非facebook更改其cdn网址,这似乎不太可能)。

修改
忘了提。公开用户的访问令牌并不是一种好的做法(如Igy所提到的)。 黑客仍然需要您的应用ID和客户端秘密来使用访问令牌执行恶意操作,但您不想承担不必要的风险。阅读this问题以获取更多详细信息。< / p>

答案 2 :(得分:0)

我还没有正确理解这个问题。

对于像http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/blah这样的资源,它们是静态网址,它们不时变化,并且它们不需要访问令牌供其他人查看。你需要一个access_token来获取网址。

客户端生成的令牌有效期为60天,或称为扩展到期访问令牌,显然must not通过公开令牌来冒着用户安全风险。

我是否遗漏了您问题的任何部分?