2013-04-13 22 views
3

我使用socialauth-android讓我的Android用戶在Facebook上驗證自己。socialauth-android授權成功與Facebook但驗證碼爲空

我的問題如下:

我可以成功地在頁面顯示的Facebook帳號登錄,用戶可以輸入憑據並授權我的應用程序。 授權完成後,應調用鏈接到SocialAuthAdapter的ReponseListener的回調方法onComplete。

這從來沒有發生,因爲我收到一個異常說,驗證碼爲空,但我可以在Facebook用戶頁面上看到我的應用程序已被授權。

似乎成功授權後,供應商也期望驗證碼,以便客戶端可以將其包含在下一個請求中。

我也不明白,如果這個空代碼是用戶會話令牌或別的東西。

有沒有人遇到過類似的問題? 如何解決它?

我已經配置了我的Facebook應用程序,如原生Android應用程序的代碼所示的簡化版本顯示畫面 **Facebook App configuration**

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 
+0

你修好了嗎? –

回答

4

http://code.google.com/p/socialauth-android/issues/detail?id=52

You have already authorized yourapp

該問題已解決,並回答了類似的問題。只需更新罐子並刪除以前的罐子。請記住它(罐子)仍處於測試階段。

+0

謝謝。我對它進行了驗證,新的(非官方)罐子解決了這個問題。 –

+1

嘗試新版本2.6的問題又回來了。即使運行socialauth-android-sdk-2.6.zip中發佈的示例應用程序,我用Facebook獲得*驗證代碼爲空*,並且Twitter總是回覆無效密碼。 –

+0

在socialauth-android-sdk-3.1.zip再次發生與自定義用戶界面 – vgonisanz