2012-10-16 62 views
0

我正在构建一个内部应用程序,它可以一次累积来自多个社交网络的信息。可能地,应用程序的URL将不会被知道,或者它不会被允许在localhost以外的任何地方使用。Facebook OAuth离线登录

我将积累的信息之一是FQL见解表信息:https://developers.facebook.com/docs/reference/fql/insights/。您可能会注意到,这些信息是私密的,所以我无法匿名获取。

应用程序本身是以“配置一次,永久使用”的方式编写的,可能使用该应用程序的人可能根本不会被允许使用Facebook登录凭证。

我的问题是Facebook登录。据我所知,使用“永久访问”的登录现在已被弃用,Facebook不允许以与Twitter相同的方式访问API(创建永久持久密钥并忘记它)。问题是:

  • 有没有什么办法可以克服这样的事实,即每次我想要获取它们时都需要询问该人的权限?询问之间最长的时间是多少?

我一下目前的想法是:

  • 创建为“经理”的虚拟用户,并给了他只读 访问FB页面,因此使他登录帐户。 然后,当我需要他们时,每隔(n)小时向他询问权限。
  • 自动登录到FB账户,因为我们有账户的登录名/密码 并自己获取API密钥。

哪个可行?有没有人有过这样的经历?

回答

2
What can be the longest period between asking? 

就可以使用长寿命的access_token用户是有效60天。使用下面的FB调用来获得更多的访问令牌:

https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN

你可以在这里查看更多详细信息:

https://developers.facebook.com/roadmap/offline-access-removal/

还有一点是值得大家注意他re: 当用户更改密码时,取消对他们的OAuth令牌过期的应用程序进行授权。

希望得到这个帮助!

+0

“我们的平台每天只会延长一次到期时间,所以即使用户每天多次修改您的网站,该令牌也会在首次请求时延长。” 据我所知,您以前使用过API。这实际上是否意味着我可以永远延长令牌? 这是我以前的想法,但谢谢你的答案:)我想没有其他办法做到这一点。 –