fb_graph / general facebook API问题

时间:2011-03-26 05:46:49

标签: ruby-on-rails facebook api

服务器端流程应该如何用于Facebook Apps?我的意思是,在每次加载页面时,我是否必须获取访问令牌?

目前,在我的application_controller中,我有一个基本上

的前置过滤器
  1. redirect_to @ fb_auth.client.web_server.authorize_url(授权应用)
  2. @ fb_auth.client.web_server.get_access_token(获取访问令牌)
  3. 在每次加载页面时,必须从Facebook获得另一个access_token这似乎很慢。这通常是怎么做的?我遇到的问题是,要访问/ me对象,您必须获取访问令牌,这需要我在每次加载页面时获取访问令牌。

2 个答案:

答案 0 :(得分:0)

您不需要在每次加载页面时都获得新的访问令牌。访问令牌应该适用于许多页面加载,因为它需要一个多小时才能到期(当您获得令牌时,到期信息可用)。

此外,您不必每次都重定向。在应用程序的POST上(例如当用户点击您的应用程序时),发布数据中包含signed_request。如果用户未授权您的应用,则需要重定向到fb_auth。如果用户之前已授权您的应用,则access_token应位于signed_request中。

更多信息: http://developers.facebook.com/docs/samples/canvas/

答案 1 :(得分:0)

@ https://github.com/michaelbaldry/fb_graph_canvas

提供了一个示例骨架应用程序

当一个人第一次访问apps.facebook.com/appname/上的画布网址时,会获得access_token。一旦发生这种情况,access_token就会存储在一个表中,直到下次用户直接进入画布网址时才会使用。 / p>