6

この方法を使用して Google ドライブに認証しています: https://developers.google.com/drive/quickstart-android

アカウントの選択はうまく機能しています。ここで、ユーザー資格情報を設定に保存したいと思います。アカウント名を保存してから復元できます。将来の使用のために資格情報を再利用したい。

Google Play サービスと GoogleAccountCredential を使用して再認証することはできますか?

これは私のシナリオです:

  1. 開始アクティビティ
  2. savedCredentials の検索
  3. そうでない場合 -> ACCOUNT PICKER を表示 (これは機能しています)
  4. アカウントを選択した場合 - クレデンティアンを設定に保存します。

ここで、アプリを閉じて再度実行します。

  1. 開始アクティビティ
  2. savedCredentials の検索
  3. はい - 資格情報が保存されています。使いたいです。

私はこのようなことを試みています:

credential = GoogleAccountCredential.usingOAuth2(GoogleDriveBackup.this, DriveScopes.DRIVE_FILE);

//use saved account (stored[0] is OK)
credential.setSelectedAccountName(stored[0]);
credential.getToken();
service = getDriveService(credential);

どこ:

 private Drive getDriveService(GoogleAccountCredential credential) {
        return new Drive.Builder(AndroidHttp.newCompatibleTransport(), 
new GsonFactory(), credential).build();
      }

これは機能していません。GoogleJsonResponseExcelption から 500 内部サーバー エラーが発生しています。Google Play Services for Android を使用してそれを行う最善の方法は何ですか。

4

1 に答える 1

8

ユーザーがアプリを再承認する必要がないようにすることを目的としている場合は、資格情報オブジェクトを保存する必要はありません。ユーザーがアカウント ピッカーを使用して選択したアカウントを保存するだけです。

次にアプリを使用するときに資格情報オブジェクトを再作成するとき、再生サービスは、ユーザーが以前にアクセスを許可したことを認識し、認証インテント (スローされた例外で利用可能) を表示する必要はありません。

ただし、ユーザーが選択したアカウントを変更する方法を提供する必要があります。

于 2013-01-17T14:37:14.373 に答える