我使用socialauth-android讓我的Android用戶在Facebook上驗證自己。socialauth-android授權成功與Facebook但驗證碼爲空
我的問題如下:
我可以成功地在頁面顯示的Facebook帳號登錄,用戶可以輸入憑據並授權我的應用程序。 授權完成後,應調用鏈接到SocialAuthAdapter的ReponseListener的回調方法onComplete。
這從來沒有發生,因爲我收到一個異常說,驗證碼爲空,但我可以在Facebook用戶頁面上看到我的應用程序已被授權。
似乎成功授權後,供應商也期望驗證碼,以便客戶端可以將其包含在下一個請求中。
我也不明白,如果這個空代碼是用戶會話令牌或別的東西。
有沒有人遇到過類似的問題? 如何解決它?
我已經配置了我的Facebook應用程序,如原生Android應用程序的代碼所示的簡化版本顯示畫面
。
public class LoginActivity extends Activity {
private static final String LOG_TAG = "LoginActivity";
SocialAuthAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
adapter = new SocialAuthAdapter(new ResponseListener());
// [.....]
}
/**
* This method is invoked when the user click on my Facebook button to initiate the
* the authentication process with Facebook
*/
protected void doLogin(){
adapter.authorize(this, Provider.FACEBOOK);
}
private final class ResponseListener implements DialogListener {
@Override
public void onComplete(Bundle values) {
// Variable to receive message status
if (Log.isLoggable(LOG_TAG, Log.DEBUG)) {
Log.d(LOG_TAG, "Authentication Successful");
}
adapter.getUserProfileAsync(new SocialAuthListener<Profile>() {
@Override
public void onError(SocialAuthError arg0) {
Log.e(LOG_TAG, "Cannot retrieve user profile");
}
@Override
public void onExecute(Profile profile) {
Log.d(LOG_TAG, "ValidatedId = " + profile.getValidatedId());
});
}
堆棧跟蹤是
Retrieving Access Token in verify response function
Verifying the authentication response from provider
org.brickred.socialauth.exception.SocialAuthException: Verification code is null
at org.brickred.socialauth.oauthstrategy.OAuth2.verifyResponse(OAuth2.java:114)
at org.brickred.socialauth.oauthstrategy.OAuth2.verifyResponse(OAuth2.java:102)
at org.brickred.socialauth.provider.FacebookImpl.doVerifyResponse(FacebookImpl.java:164)
at org.brickred.socialauth.provider.FacebookImpl.verifyResponse(FacebookImpl.java:154)
at org.brickred.socialauth.SocialAuthManager.connect(SocialAuthManager.java:183)
at org.brickred.socialauth.android.SocialAuthDialog$SocialAuthWebViewClient$1.run(SocialAuthDialog.java:243)
at java.lang.Thread.run(Thread.java:856)
org.brickred.socialauth.exception.SocialAuthException: Verification code is null
org.brickred.socialauth.android.SocialAuthError: Unknown Error
你修好了嗎? –