微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 即使在第一次登录后,即使打开应用程序,Facebook AccessToken.getAccessToken也为空

我已经集成了最新的Facebook android sdk(Sdk 4.0).
这是我在我的onCreate方法添加代码.
FacebookSdk.sdkInitialize(this.getApplicationContext());
            callbackManager = CallbackManager.Factory.create();
            if(Accesstoken.getCurrentAccesstoken()!=null){
                Log.d(FBTAG,"facebook already logged in");
                isFBLogin = true;
            }
            LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
                        @Override
                        public void onSuccess(LoginResult loginResult) {
                            // App code
                            Log.d(FBTAG,"facebook log in");
                            isFBLogin = true;
                        }

                        @Override
                        public void onCancel() {
                             // App code
                            isFBLogin = false;
                        }

                        @Override
                        public void onError(FacebookException error) {
                            isFBLogin = false;
                            Log.d(FBTAG,"facebook login error: "+error);
                            // App code

                        }
            });

这是我用于onClickLogin的代码

public void onClickLogin() {
        LoginManager.getInstance().logInWithPublishPermissions(this,PERMISSIONS);
    }

我可以通过点击登录按钮和处理onClickLogin功能进行登录.现在下次我打开应用程序我正在检查Accesstoken.getAccesstoken的应用程序,以检查用户是否已经在Facebook上登录,但它始终为空.
在新的sdk中不存在登录的背景,所以我不必要求用户永远像以前在会话类中的旧版本一样登录.

解决方法

LoginManager返回的访问令牌将保存在共享首选项中,因此下次打开应用程序时,Accesstoken.getCurrentAccesstoken()应该具有相同的访问令牌,这与使用Session类的方式相同.您可以查看随SDK提供的示例来查看它们的工作.

确保您不会在会话之间重新安装应用程序,或将当前访问令牌显式设置为null.

原文地址:https://www.jb51.cc/android/310888.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐