使用Facebook长寿令牌

时间:2014-05-08 21:12:19

标签: android facebook session facebook-graph-api facebook-sdk-3.0

我一直在争夺几个小时的问题,即在我当前的Session for Facebook请求中使用Facebook长期令牌。

应用程序的流程如下: 1)用户启动Android应用程序并单击“使用Facebook登录”按钮 2)用户被重定向到Facebook,在那里他们可以访问他们帐户的某些部分(朋友列表,电子邮件等) 3)然后用户被重定向回我的应用程序(如果成功)发现会话对象被打开并且我检索(以及其他信息)短期访问令牌。 4)我将这个短期访问令牌传递给我的服务器应用程序,该应用程序再次调用Facebook将短期令牌交换为长期令牌,我的服务器应用程序返回到我的应用程序。

收到长期访问令牌后,如何“使用”或修改现有会话(Session.getActiveSession()),以便在后续的Facebook请求中使用长期访问令牌,从而保持有效(我相信)60天?

我目前正在使用最新版本的Android SDK。

感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

https://developers.facebook.com/docs/reference/android/current/class/Session/#class_methods的文档中我可以看到有一个

openActiveSessionWithAccessToken(Context, AccessToken, StatusCallback)方法。

说明

  

根据现有的Facebook访问令牌打开会话   使此会话成为当前活动的会话。这个方法应该是   仅在应用程序先前已获得的情况下使用   访问令牌并希望将其导入到   基于Session / TokenCachingStrategy的会话管理系统。一个   主要的例子是以前没有使用的应用程序   Facebook SDK for Android并实现了自己的   会话管理方案,但希望实现升级路径   现有用户,因此升级到a时无需再次登录   使用SDK的应用版本。一般来说,这种方法将是   当应用程序检测到它已升级时,只调用一次 -   之后,应该使用通常的Session生命周期方法   管理会话及其相关令牌。

     

未对令牌,令牌源或权限进行验证   实际上有效。呼叫者有责任确保这些   准确反映传入的令牌的状态,或   调用Facebook API可能会失败。

你试过这个吗?