在Facebook Android SDK 4.0中删除了访问令牌

时间:2015-04-09 06:16:56

标签: android facebook facebook-android-sdk facebook-access-token

我正在使用Facebook Android SDK 4.0(最新更新版本)。初始设置后我登录了我的应用程序。然后我退出了我的应用程序。如果再次启动我的应用程序,则用户未处于登录状态。当我使用调试器时,它显示“ACCESS TOKEN REMOVED”。使用Access Token检查用户是否处于登录状态的过程是什么?

我尝试了新的登录方法(根据较新的版本4.0),其中提到了登录过程。我已经做了。但每当我打开访问令牌状态是“访问令牌删除”。我在仪表板设置中检查了App id,包名称,活动名称。全部正确。帮我找到解决这个问题的方法。

4 个答案:

答案 0 :(得分:14)

你可以通过使用获得access_token 。loginResult.getAccessToken()为gettoken(); 如下面的代码

 LoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {

          String accessToken= loginResult.getAccessToken().getToken();

        }

答案 1 :(得分:12)

默认情况下,SDK不会将访问令牌记录到logcat(这是为了避免通过日志泄露用户令牌)。

但是,您可以在调试模式下启用日志记录行为来记录访问令牌。只需在调用FacebookSdk.sdkInitialize()时添加此项,但请确保仅在调试模式下执行此操作:

if (BuildConfig.DEBUG) {
    FacebookSdk.setIsDebugEnabled(true);
    FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
}

答案 2 :(得分:5)

您可以使用

获取令牌
 AccessToken.getCurrentAccessToken().getToken()

使用此功能,您可以随时获取令牌,如果您使用LoginResult,则只需在登录时获取一次,当您重新启动应用程序时,不会调用onSuccess。

如果您在重新启动后需要配置文件,请使用

Profile.getCurrentProfile();

如果返回null,则不会显示

答案 3 :(得分:0)

我得到了解决方案。我在单独的线程中执行GraphRequest方法。这是错误的方法。所有asynch taks应该在主线程内运行。