1

所以我真的很困惑Facebook的登錄如何在android中使用aws cognito。我能夠很好地勾住aws認知和facebook登錄。在AWS cognito導給我的幾行代碼:aws認證與Facebook登錄? - android

Map<String, String> logins = new HashMap<String, String>(); 
     logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken()); 
     credentialsProvider.setLogins(logins); 

幾個問題: 1.Where不要我把這些代碼? 2.如何設置cognito用戶等於登錄facebook用戶? 3.基本上,這是什麼工作的例子?

希望你們能幫忙!

回答

1

這是下面的代碼,其中我使用了來自congnito的聯合身份的facebook登錄。首先您需要使用適當的登錄憑證和池詳細信息設置CognitoSyncManagerFile。然後下面的代碼如下。

//initialize the facebook SDK 
FacebookSdk.sdkInitialize(getApplicationContext()); 

//If access token is already here, set fb session 
     final AccessToken fbAccessToken = AccessToken.getCurrentAccessToken(); 
     if (fbAccessToken != null) { 
      setFacebookSession(fbAccessToken); 
     // btnLoginFacebook.setVisibility(View.GONE); 
     } 

btnLoginFacebook = (Button) findViewById(R.id.btnLoginFacebook); 
     btnLoginFacebook.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // start Facebook Login 
       LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile")); 
       LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
        @Override 
        public void onSuccess(LoginResult loginResult) { 
         btnLoginFacebook.setVisibility(View.GONE); 
         new GetFbName(loginResult).execute(); 
         setFacebookSession(loginResult.getAccessToken()); 
        } 

        @Override 
        public void onCancel() { 
         Toast.makeText(MainActivity.this, "Facebook login cancelled", 
           Toast.LENGTH_LONG).show(); 
        } 

        @Override 
        public void onError(FacebookException error) { 
         Toast.makeText(MainActivity.this, "Error in Facebook login " + 
           error.getMessage(), Toast.LENGTH_LONG).show(); 
        } 
       }); 
      } 
     }); 





//Set the session with the following method 
     private void setFacebookSession(AccessToken accessToken) { 
       Log.i(TAG, "facebook token: " + accessToken.getToken()); 
       CognitoSyncClientManager.addLogins("graph.facebook.com", 
         accessToken.getToken()); 


      } 

欲瞭解更多信息,請按照下面的網址

https://github.com/awslabs/aws-sdk-android-samples/tree/master/CognitoSyncDemo

0
  1. 把這個放在您的憑證提供程序已經初始化的地方,您剛纔已經登錄到Facebook,供相關用戶使用。

  2. 一旦你已經把它包含在登錄映射中,調用credentialsProvider.refresh()。這會將登錄鏈接與用戶的身份相關聯。

  3. 官方AWS samples repo有一個可以完成所有這些工作的android樣本。