错误的身份验证数据 QuickBlox - Android
Bad Authentication Data QuickBlox - Android
我正在研究 QuickBlox SDK , Using this SDK I am trying to login on Facebook . I have visited some helpfull links on Whosebug like this,但它对我没有帮助。这是我的代码片段。
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"]}'
您使用了错误的令牌
应该是Facebook令牌
请使用本指南将 Facebook SDK 集成到您的应用程序
https://developers.facebook.com/docs/android/getting-started
最后我得到了上述问题的答案,我在方法 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();
}
});
}
我正在研究 QuickBlox SDK , Using this SDK I am trying to login on Facebook . I have visited some helpfull links on Whosebug like this,但它对我没有帮助。这是我的代码片段。
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"]}'
您使用了错误的令牌
应该是Facebook令牌
请使用本指南将 Facebook SDK 集成到您的应用程序
https://developers.facebook.com/docs/android/getting-started
最后我得到了上述问题的答案,我在方法 QBUsers.signInUsingSocialProvider() 中传递了错误的 AccessToken。使用
成功登录 facebook 后,我需要获取 AccessTokenAccessToken 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();
}
});
}