Google APIとの統合
A3L Authentication SDKは、Google APIとの統合をサポートしています。この統合を有効にすると、ユーザーがGoogleアカウントでアプリにログインした後、Googleサービスにアクセスできるようになります。現在、A3L AuthenticationはGoogleドライブのスコープをサポートしています。Googleドライブのスコープの詳細については、Google開発者向けドキュメントのGoogle Drive APIのスコープを選択するを参照してください。
Googleドライブの統合
GoogleドライブとFire OSアプリを統合するには、まずA3L Authentication SDKを統合し、ログイン機能を実装する必要があります。手順については、A3L Authentication SDKの統合を参照してください。次に示すように、アプリのbuild.gradleファイルに依存関係としてGoogle Drive SDKを追加します。
implementation('com.google.apis:google-api-services-drive:<バージョン>')
google-api-services-driveのバージョンv3-rev20220709-2.0.0あるいはそれ以降を使用してください。
A3LSignInOptions
を作成するときに、requestScopes()
メソッドを使用してGoogleドライブの適切なスコープをリクエストします。次のコードを参照してください。
A3LSignInOptions a3LSignInOptions = new A3LSignInOptions
.Builder(A3LSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(DriveScopes.<スコープ>))
.requestEmail()
.build();
認証情報の作成
ユーザーがログインしたら、FOSAccountCredential
オブジェクトを使用してGoogleドライブの認証情報を作成します。このオブジェクトの作成時には、A3LSignInOptions
に渡したスコープと同じスコープを渡します。以下に例を示します。
FOSAccountCredential fosAccountCredential = new FOSAccountCredential.usingOAuth2(context, Collections.singleton(DriveScopes.<スコープ>));
fosAccountCredential.setSelectedAccount(account);
この認証情報を、次のようにGoogleドライブのビルダーで使用します。
Drive googleDriveService = new Drive.Builder(new NetHttpTransport(),
new GsonFactory(),
fosAccountCredential)
.setApplicationName("<アプリ名>")
.build();
これで、このDrive
オブジェクトをGoogle Drive API呼び出しで使用できるようになりました。次のコードは、Drive
オブジェクトを使用して、最大10個のファイルの名前とIDを一覧表示する方法を示しています。
FileList result = googleDriveService.files().list()
.setPageSize(10)
.setFields("nextPageToken, files(id, name)")
.execute();
List<File> files = result.getFiles();
if (files == null || files.isEmpty()) {
System.out.println("No files found.");
} else {
System.out.println("Files:");
for (File file : files) {
System.out.printf("%s (%s)\n", file.getName(), file.getId());
}
}
FOSAccountCredential
オブジェクトがサポートするのはFire OSデバイスだけです。GoogleデバイスではGoogleAccountCredential
オブジェクトを使用してください。どのデバイスが使用されているかを確認するには、getCurrentService()
APIを使用してください。このメソッドは、ユーザーのデバイスに基づいて、GoogleSignIn
またはAppAuth
という文字列を返します。クラスの違い
次の表は、GoogleAccountCredential
クラスとFOSAccountCredential
クラスで使用できるメソッドの違いを示しています。
API | GoogleAccountCredentialで使用可能 | FOSAccountCredentialで使用可能 |
---|---|---|
static usingAudience(Context context, String audience) |
○ | × |
static usingOAuth2(Context context, Collection<String> scopes) |
○ | ○ |
Constructor (Context context, String scope) |
○ | ○ |
getAllAccounts() |
○ | ○ ログインに使用されたアカウントのみを返します。 |
getBackOff() |
○ | ○ |
getContext() |
○ | ○ |
getGoogleAccountManager() |
○ | × |
getScope() |
○ | ○ |
getSelectedAccount() |
○ | ○ |
getSelectedAccountName() |
○ | ○ |
getSleeper() |
○ | ○ |
getToken() |
○ | ○ |
initialize(HttpRequest request) |
○ | ○ |
newChooseAccountIntent() |
○ | × |
setBackOff(BackOff backOff) |
○ | ○ |
setSelectedAccount(Account selectedAccount) |
○ | ○ |
setSelectedAccountName(String accountName) |
○ | ○ |
setSleeper(Sleeper sleeper) |
○ | ○ |
関連トピック
Last updated: 2023年12月5日