我将 facebook 用于 android sdk 用于 SSO。
我的活动调用fb.authorize()
函数来执行 OAuth。在这个函数中,我给出了一个对DialogListener
负责根据 OAuth 结果采取适当措施的对象的引用。当用户从 FB 应用程序返回并且 DialogListener 对象丢失时,操作系统可能已经终止了该活动。在这种情况下,无法获得我们应该在 DialogListener 中获得的 AccessToken。
如何处理这种情况?
我将 facebook 用于 android sdk 用于 SSO。
我的活动调用fb.authorize()
函数来执行 OAuth。在这个函数中,我给出了一个对DialogListener
负责根据 OAuth 结果采取适当措施的对象的引用。当用户从 FB 应用程序返回并且 DialogListener 对象丢失时,操作系统可能已经终止了该活动。在这种情况下,无法获得我们应该在 DialogListener 中获得的 AccessToken。
如何处理这种情况?
您可以致电:
mFB.getAccessToken()
但是您可以将会话存储在 SharedPreferences 中以在本地重用它。令牌将过期,并在再次需要时被请求和存储。
我自己回答这个问题。
执行 OAuth 后的 Facebook 应用程序返回的结果是我们获取的意图数据。它onActivityResult();
需要调用mFB.authorizeCallback()
。onActivityResult
如果您查看此函数的来源,您将知道如何从意图数据中提取它。这样做你可以在 onActivityResult 中获得访问令牌。