AndroidアプリでGoogle+ OAuthとAWS Cognitoを設定しようとしていました。AWS Cognito、Google+ OAuth、AccountManagerを使用しているAndroidアプリ
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
その結果オブジェクトから、私は、特定のデータは以下の通り得ることができます:
if (result.isSuccess()) {
GoogleSignInAccount account = result.getSignInAccount();
String authCode = account.getServerAuthCode(); //null
String displayName =account.getDisplayName(); //correct value
String email = account.getEmail(); //correct value
String id = account.getId(); //correct value
String idToken = account.getIdToken(); //null
...
今私は、Google + OAuthのは、私は以下の呼び出しをオフアカウントを取得することができるよので、私は、信じて働いていしかし、私がAWSのドキュメンテーションに従うと、私はエラーと廃止されたメソッドを取得します。ここで私はAWSのドキュメントから模倣しようとしているコード・ブロックです:
ドキュメンテーション:私が問題に実行しているよどこhttp://docs.aws.amazon.com/cognito/latest/developerguide/google.html#set-up-google-1.android#Android
//From Documentation^
GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
String token = GoogleAuthUtil.getToken(getApplicationContext(), accounts[0].name,
"audience:server:client_id:YOUR_GOOGLE_CLIENT_ID");
Map<String, String> logins = new HashMap<String, String>();
logins.put("accounts.google.com", token);
credentialsProvider.setLogins(logins);
ここでは、次のとおりです。
AccountManager am = AccountManager.get(context);
Account[] accounts = am.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
この呼び出しが占めた後にされました空の配列 - OAuthプロセスがAccountManagerに情報を格納するために何かする必要がありますか?
*** AWSのドキュメント(上のリンクから)は、私が得ることができない次のステップを実行する必要があることをGoogleに設定するステップ#5と述べています右:「資格情報>資格の追加」で、サービスアカウントを作成します。新しい公開鍵/秘密鍵が作成されたことを通知するコンソールが表示されます。
GoogleのUIが変更され、カスタムサービスアカウントを作成し、2つのデフォルトアカウント(アプリエンジン/計算エンジン)のいずれかを使用する3つのオプションがあります。私はどちらをすべきですか?