Android facebook graph Api GraphRequest.newMeRequest AccessToken 令牌:ACCESS_TOKEN_REMOVED

问题描述 投票:0回答:1

我想获取登录facebook的用户信息。当我在 LoginManager.getInstance().logInWithReadPermissions 之后调用 GraphRequest.newMeRequest 时,一切都很好,我得到了包括姓名和电子邮件等在内的用户信息。但是,如果我在下次启动应用程序期间调用 newMeRequest(不调用 loginwithreadpermissions),则会出现错误:

    {Request:  accessToken: {AccessToken token:ACCESS_TOKEN_REMOVED   permissions:[user_friends, email, public_profile, user_birthday]}, graphPath: me, graphObject: null, httpMethod: GET, parameters: Bundle[{}]}
     [{Response:  responseCode: 200, graphObject: {"id":"799921370127965","gdpv4_nux_enabled":false,"supports_implicit_sdk_logging":true,"android_sdk_error_categories":[{"recovery_message":"Please log in to this app again to reconnect your Facebook account.","items":[{"code":102},{"code":190}],"name":"login_recoverable"}],"android_dialog_configs":{"data":[{"versions":["20140701"],"url":"\/connect\/dialog\/MPlatformLikeJSDialog","name":"com.facebook.platform.action.request.LIKE_DIALOG|LIKE_DIALOG"},
    {"versions":["20140701"],"url":"\/connect\/dialog\/MPlatformAppInvitesJSDialog","name":"com.facebook.platform.action.request.APPINVITES_DIALOG|APP_INVITES_DIALOG"}]},"gdpv4_nux_content":"New! You're in control – choose what info you want to share with apps."}, error: null}]

下面是我的代码

public void facebookLogin()
{
if (!isFBLogin)
    LoginManager.getInstance().logInWithReadPermissions(this,Arrays.asList("public_profile","email", "user_birthday", "user_friends"));
else
    loadFBInfo();
}

public void loadFBInfo()
{

 GraphRequest request = GraphRequest.newMeRequest(
                           accessTokenApp,
                           new GraphRequest.GraphJSONObjectCallback() {
                               @Override
                               public void onCompleted(
                                                       JSONObject object,GraphResponse response) {
                                   Log.d(APPACTTAG, "newMeDone..");
                               }
                           });
request.executeAsync();
  }

   callbackManager = CallbackManager.Factory.create();
   LoginManager.getInstance().registerCallback(callbackManager,
                                        new FacebookCallback<LoginResult>() {
                                            @Override
                                            public void onSuccess(LoginResult loginResult) {
                                                Log.d(APPACTTAG, "FB Login Result .... " + loginResult.hashCode());
                                                loadFBInfo();
                                            }
                                            @Override
                                            public void onCancel() {
                                                // App code
                                                Log.d(APPACTTAG, "FB Login Cancel Result ...");
                                            }
                                            @Override
                                            public void onError(FacebookException exception) {
                                                // App code  
                                                Log.d(APPACTTAG, "FB onError ..." + exception.toString());
                                        });
android facebook facebook-graph-api
1个回答
0
投票

在这种情况下,您应该在图表请求中传递

AccessToken.getCurrentAccessToken()
。您还可以使用 AccessTokenTracker 来不断更新您的
accessToken
变量。

© www.soinside.com 2019 - 2024. All rights reserved.