【发布时间】:2017-09-28 04:58:01
【问题描述】:
我有点困惑。我能够使用 facebook sdk 设置 Facebook 登录按钮。接下来,我想将用户添加到 cognito,但指南告诉我这样做:
Map<String, String> logins = new HashMap<String, String>();
logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken());
credentialsProvider.setLogins(logins);
我这样做了,但我没有看到用户隐身。我很困惑,“联合身份验证”是什么意思?我想要完成的是:
1.用户通过Facebook注册 2.一旦facebook登录成功,我想将该用户添加到认知中。
这是我当前的代码:
private void setFacebookButton()
{
Log.d("MY_FACEBOOK","setting up callbackManager");
callbackManager = CallbackManager.Factory.create();
loginButton.setReadPermissions("user_friends");
loginButton.setReadPermissions("public_profile");
loginButton.setReadPermissions("email");
loginButton.setReadPermissions("user_birthday");
// If using in a fragment
loginButton.setFragment(this);
// Callback registration
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d("MY_FACEBOOK","login success!");
Map<String, String> logins = new HashMap<String, String>();
logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken());
SetLoginsAsyncTask loginsAsyncTask = new SetLoginsAsyncTask(logins);
loginsAsyncTask.execute();
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
}
public class SetLoginsAsyncTask extends AsyncTask<Void,Void,Void>
{
private Map<String,String> logins = new HashMap<>();
public SetLoginsAsyncTask(Map<String,String> logins)
{
this.logins = logins;
}
@Override
protected Void doInBackground(Void... params)
{
myCognito.getCredentialsProvider().setLogins(logins);
myCognito.getCredentialsProvider().refresh();
String testing = myCognito.getCredentialsProvider().getCredentials().getSessionToken();
if(testing != null)
{
Log.d("MY_FACEBOOK","testing is " + testing);
}
else
{
Log.d("MY_FACEBOOK","testing is null");
}
return null;
}
@Override
public void onPostExecute(Void var)
{
}
}
所以我有点困惑,在 facebook 登录按钮返回用户及其名字、姓氏、电子邮件等之后,接下来的步骤是什么。我想将该用户添加到 Cognito 并得到确认。
希望有人可以通过正确的步骤和代码进行澄清。
干杯
【问题讨论】:
-
嗨,你最后做了什么?
标签: android facebook amazon-web-services aws-sdk federated-identity