用facebook登录aws cognito? - android

问题描述 投票:2回答:2

所以我真的很困惑facebook登录如何与Android中的aws cognito一起工作。我能够挂起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.如何设置ideito用户等于登录facebook用户? 3.基本上,这是一个有效的例子吗?

希望你们能帮忙!

android amazon-web-services facebook-login amazon-cognito amazon-cognito-facebook
2个回答
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样本,可以做到这一切。
© www.soinside.com 2019 - 2024. All rights reserved.