【问题标题】:Bad Authentication Data QuickBlox - Android错误的身份验证数据 QuickBlox - Android
【发布时间】:2016-04-21 20:51:17
【问题描述】:

我正在使用QuickBlox SDK,使用此 SDK 我正在尝试登录 Facebook。我已经访问了一些关于 stackoverflow 的有用链接,例如 this ,但它对我没有帮助。这是我的代码 sn-p 。

QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() {
    @Override
    public void onSuccess(QBSession session, Bundle params) {
        String token = session.getToken();
        QBUsers.signInUsingSocialProvider(QBProvider.FACEBOOK, token, null, new QBEntityCallbackImpl<QBUser>() {
            @Override
            public void onSuccess(QBUser user, Bundle args) {
                Toast.makeText(getApplicationContext() , "Success" ,Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onError(List<String> errors) {
                Toast.makeText(getApplicationContext() , "onError" ,Toast.LENGTH_SHORT).show();
            }
        });
    }
    @Override
    public void onError(List<String> errors) {

    }
});

LogCat 详细信息:

Access-Control-Allow-Origin=*
    Cache-Control=no-cache
    Connection=keep-alive
    Content-Length=38
    Content-Type=application/json; charset=utf-8
    Date=Sat, 16 Jan 2016 08:14:28 GMT
    QB-Token-ExpirationDate=2016-01-16 10:14:03 UTC
    QuickBlox-REST-API-Version=0.1.1
    Server=nginx/1.8.0
    Status=422 Unprocessable Entity
    X-Rack-Cache=invalidate, pass
    X-Request-Id=c350c40caa43dae4fa962da7f2e8e389
    X-Runtime=0.132058
    X-UA-Compatible=IE=Edge,chrome=1
  BODY
    '{"errors":["Bad Authentication data"]}'

【问题讨论】:

    标签: android quickblox


    【解决方案1】:

    您使用了错误的令牌

    应该是 Facebook 令牌

    请使用本指南将 Facebook SDK 集成到您的应用中

    https://developers.facebook.com/docs/android/getting-started

    https://developers.facebook.com/docs/facebook-login/android

    【讨论】:

    • 感谢您的回答。
    • 我已经一天解决了这个问题 :)。
    • 我正在使用贴纸库版本 0.8.2 。我在这里遇到问题。这是链接stackoverflow.com/questions/34947603/…。请帮帮我。
    【解决方案2】:

    最后我得到了上述问题的答案,我在 QBUsers.signInUsingSocialProvider() 方法中传递了错误的 AccessToken。使用

    成功登录 facebook 后,我需要获取 AccessToken
    AccessToken accessToken = loginResult.getAccessToken();
    

    然后我需要在 QBUsers.signInUsingSocialProvider()

    中传递这个 accessToken

    这是我的完整代码:

        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                AccessToken accessToken = loginResult.getAccessToken();
                facebooklogin(accessToken);
            }
    
            @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-Check Network Connection", Toast.LENGTH_SHORT).show();
            }
    
        });
    
       public void facebooklogin(final AccessToken accessToken) {
    
            QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() {
                @Override
                public void onSuccess(QBSession session, Bundle params) {
    
                    String token = accessToken.getToken();
    
                    QBUsers.signInUsingSocialProvider(QBProvider.FACEBOOK, token, null, new QBEntityCallbackImpl<QBUser>() {
                        @Override
                        public void onSuccess(QBUser user, Bundle args) {
                            Toast.makeText(getApplicationContext(), "Success QB", Toast.LENGTH_SHORT).show();
                        }
                        @Override
                        public void onError(List<String> errors) {
                            Toast.makeText(getApplicationContext(), "onError QB", Toast.LENGTH_SHORT).show();
                        }
                    });
                }
                @Override
                public void onError(List<String> errors) {
                    Toast.makeText(getApplicationContext(), "onError", Toast.LENGTH_SHORT).show();
                }
            });
    
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-31
      • 2018-10-30
      相关资源
      最近更新 更多