5

Google Cloud Endpointsを使用するアプリがあります。いくつかのメソッドは認証が必要なので、私はthisチュートリアルを続けました。これには、GET_ACCOUNTS権限が必要です。承認済みのGoogle Cloud EndpointsをGoogleサインインで使用する

私は実行時のアクセス許可で動作するようにアプリケーションを更新しています。私は連絡先を読む許可を要求するのは好きではありませんが、GET_ACCOUNTSは同じグループにあります。このため、私はGET_ACCOUNTS権限なしで認可を使用したいと考えています。

私はGoogle Sign Inがうまくいくと思っていますが、私はGoogleログインの結果を使用する方法を見つけることができません。

これは、エンドポイントへの呼び出しを行うためにオブジェクトを作成するために使用するコードです:

Helloworld.Builder helloWorld = new Helloworld.Builder(AppConstants.HTTP_TRANSPORT, AppConstants.JSON_FACTORY,credential); 

資格情報オブジェクトはHttpRequestInitializerことが、私はGoogleSignInAccountを取得するには、Googleのログインからしなければなりません。

これは可能ですか?これはどのように行うべきですか?

答えて

6

最後に解決策が見つかりました。チュートリアルを使用して、hereを見つけました。

あなたはGoogleSignInOptionsにクライアントIDを追加する必要があります。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestIdToken(CLIENT_ID) 
      .requestEmail() 
      .build(); 

あなたがfinaly GoogleSignInAccountを取得しますチュートリアル後。 GoogleCredentialオブジェクトにGoogleSignInAccountからトークンを設定します。

GoogleCredential credential = new GoogleCredential.Builder().setTransport(new NetHttpTransport()) 
      .setJsonFactory(JacksonFactory.getDefaultInstance()) 
      .build(); 
credential.setAccessToken(GoogleSignInAccount.getIdToken()); 

この資格は、GoogleクラウドEnpointsへの認証呼び出しを行う準備ができています。

CLIENT_IDから "server:client_id:"部分を削除する必要があることに注意してください。あなたは、この使用していたのであれば:

credential = GoogleAccountCredential.usingAudience(this, 
    "server:client_id:1-web-app.apps.googleusercontent.com"); 

をごCLIENT_IDは次のようになります。

CLIENT_ID = "1-web-app.apps.googleusercontent.com" 

も(およそ10mlの液体フッ化水素を圧入私のテストで1時間。)トークンは、時間の限られた量のために有効であることに注意してください

+0

fantastic、私はちょうどあなたと同じ理由で(ランタイムモデルをサポートするための権限をやり直して合理化したかったので)これを見ていました、ありがとうございました!私はこれがIDを持っていないので、これはまた、許可されたユーザーをリロードする必要があるGoogleエンドポイントのクラウド側の問題を解決するかどうか疑問に思う... – Creos

+0

私のために動作しません:バックエンドがNULL com.google.appengine .api.users.Userは、認証に失敗したときに発生します。あなたは同じ問題に直面しましたか? thx – Creos

+0

私は答えを編集しました。 CLIENT_IDが正しく設定されているかどうかを確認してください。 "server:client_id:"を削除する必要があります。また、トークンが期限切れになるので、サインイン後に限られた時間内にしか動作しません。 – 9and3r

関連する問題