2017-03-04 31 views
-1

我想用Facebook API和AWS認證製作登錄系統。在Android開發環境中使用Facebook - cognito登錄是不可能的嗎?

我有facebook應用程序密鑰和認知身份池。

Facebook向我發送適當的AccessToken,但是當我將它發送到AWS身份池時,沒有任何迴應。

這是我的代碼。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_start); 
    setupFacebookStuff(); 

    final AccessToken fbAccessToken=AccessToken.getCurrentAccessToken(); 
     if(fbAccessToken!=null) 
     { 
      setFacebookSession(fbAccessToken); 
     } 

    facebookLoginButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      startFacebookTracking(); 
      loginManager.logInWithReadPermissions(StartActivity.this, Arrays.asList("public_profile")); 

     } 
    }); 
} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
    if (Session.getCurrentSession().handleActivityResult(requestCode, resultCode, data)) { 
     return; 
    } 

} 
private void setupFacebookStuff() { 
    callbackManager=CallbackManager.Factory.create(); 
    loginManager= LoginManager.getInstance(); 
    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      setFacebookSession(loginResult.getAccessToken()); 
     } 

     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException error) { 
      Snackbar.make(linearLayout, getString(R.string.network_failure), Snackbar.LENGTH_LONG).show(); 

     } 
    }); 
} 
private void setFacebookSession(AccessToken accessToken) { 
    CognitoSyncClientManager.addLogins("graph.facebook.com", 
      accessToken.getToken()); 
    redirectMainActivity(); 
} 

我在我的GlobalApplication中初始化我的CognitoSyncClientManager,它是靜態的。

當我點擊Facebook登錄按鈕時,回調成功。 但是,當我看到AWS身份池時,沒有身份。 我認爲這是因爲我的Facebook應用程序密鑰是用於開發環境的。 我對不對?比我該怎麼做?

+0

「我認爲這是因爲我的Facebook應用程序密鑰是用於開發環境的,對嗎?我應該怎麼做?」如果因爲密鑰不允許而無法登錄,請獲取發佈密鑰並將您的應用上傳到Alpha/Beta頻道進行測試 – Zoe

+1

要回答標題:IT並非不可能。你可能做錯了什麼。忘了撥打一些方法或什麼 – Zoe

+0

@LunarWatcher謝謝,我會試試看。 –

回答

0

Karthik的評論是非常真實的。 Android SDK不會自動獲取憑證,您需要在憑證提供程序上調用refresh()或getCredentials()。

Cognito有example android app使用Facebook登錄,可能有一定的幫助。

相關問題