aws cognito с входом в facebook? - андроид

поэтому я действительно запутался в том, как вход в facebook работает с aws cognito в Android. Я смог подключить aws cognito и войти в facebook просто отлично. Руководство по aws cognito дает мне следующие строки кода:

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

пара вопросов: 1. Где я могу разместить эти строки кода? 2. Как мне настроить пользователя cognito, равного пользователю входа в систему facebook? 3. И вообще, какой это рабочий пример?

Надеюсь, вы, ребята, можете помочь!




Ответы (2)


Это следующий код, в котором я использовал логин facebook с федеративными удостоверениями из файла congnito. сначала вам нужно настроить 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());


            }

Для получения дополнительной информации следуйте приведенному ниже URL-адресу

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

person shobhan    schedule 19.01.2017
comment
после этого я могу войти в систему, но не могу зарегистрироваться в AWS. - person GvSharma; 06.08.2018
comment
@GvSharma У меня такая же проблема, вы можете ее решить? - person Jay Nirmal; 01.11.2019

  1. Поместите это в место, где ваш поставщик учетных данных уже был инициализирован, где вы только что вошли в Facebook для рассматриваемого пользователя.

  2. После того, как вы включили это в карту входа в систему, вызовите учетные данныеProvider.refresh(). Это свяжет логин с личностью пользователя.

  3. В официальном репозитории образцов AWS есть образец Android, который делает все это.

person Jeff Bailey    schedule 16.01.2017
comment
ссылка не работает!! Пожалуйста, помогите мне, как добавить пользователя facebook в пул пользователей - person Jay Nirmal; 16.09.2019