我一直在争夺几个小时的问题,即在我当前的Session for Facebook请求中使用Facebook长期令牌。
应用程序的流程如下: 1)用户启动Android应用程序并单击“使用Facebook登录”按钮 2)用户被重定向到Facebook,在那里他们可以访问他们帐户的某些部分(朋友列表,电子邮件等) 3)然后用户被重定向回我的应用程序(如果成功)发现会话对象被打开并且我检索(以及其他信息)短期访问令牌。 4)我将这个短期访问令牌传递给我的服务器应用程序,该应用程序再次调用Facebook将短期令牌交换为长期令牌,我的服务器应用程序返回到我的应用程序。
收到长期访问令牌后,如何“使用”或修改现有会话(Session.getActiveSession()),以便在后续的Facebook请求中使用长期访问令牌,从而保持有效(我相信)60天?
我目前正在使用最新版本的Android SDK。
感谢任何帮助。
谢谢!
答案 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可能会失败。
你试过这个吗?