在 android 中获取有效的 Facebook 访问令牌

Get active facebook access token in android

当 facebook 登录成功时,我想要 accesstoken 之类的东西:http://i.stack.imgur.com/0NXCh.png 如图所示。但我明白了 accesstoken : {AccessToken token:ACCESS_TOKEN_REMOVED permissions:[user_birthday, public_profile, contact_email, user_friends, email]}

我这样试过

btnFacebookLogin.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code

            Log.i(TAG,"accesstoken : "+loginResult.getAccessToken());

        }

        @Override
        public void onCancel() {
            // App code
            Toast.makeText(getApplicationContext(), "cancel", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
            Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT).show();
        }
    });

我不知道如何从 android 端获取服务器端程序员想要的访问令牌。我对此深陷其中。

您需要像这样在 activity 中创建一个 AccessTokenTracker 侦听器:

AccessTokenTracker accessTokenTracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(
                AccessToken oldAccessToken,
                AccessToken currentAccessToken) {

        }
    };

然后在您的 registerCallback onSuccess() 中,您可以像这样获取访问令牌

AccessToken.getCurrentAccessToken().getToken();