Google Drive API v3(Java)を使用して、
Driveにインストールされているアプリの情報を取得する方法
についてご紹介します。
アプリとは、「Google スライド」、「Google 図形描画」、「Google フォーム」、
「Google Apps Script」、「Google スプレッドシート」などのことを指します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Drive API v3] JavaでDrive APIを使う
を参照ください。
| No | 目次 | |
|---|---|---|
| 1 | アプリリストを取得 | |
| 1 | スコープ | |
| 2 | 実行 | |
| 3 | レスポンスの内容 | |
| 2 | アプリの情報を取得 | |
| 1 | スコープ | |
| 2 | 実行 | |
| 3 | レスポンスの内容 |
1. アプリリストを取得
1.1. スコープ
このAPIを実行するには、以下のスコープを指定してください。
DriveScopes.DRIVE_APPS_READONLY
⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。
1.2. 実行
APIを実行します。
setFieldsで取得したいフィールド(AppList)を指定できます。
指定しない場合は、必要最小限のレスポンスしか返ってきません。
ここでは「*」(全て取得)を指定しています。
アプリの名前などを日本語で取得したい場合は、
Drive.Apps.ListのsetLanguageCodeで言語を指定します。
例えば、日本語を指定した場合、取得できるアプリの名前は、
「Google Slides」 -> 「Google スライド」 となります。
public static void main(String[] args) throws Exception{
Drive drive = getDrive();
Drive.Apps apps = drive.apps();
Drive.Apps.List list = apps.list();
list.setFields(*);
//アプリの名前等を日本語で取得したい場合
//list.setLanguageCode("ja");
AppList res = list.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://www.googleapis.com/drive/v3/apps
が実行されます。
1.2.2. クエリパラメータ
Drive.Apps.Listのsetメソッドにより、クエリパラメータを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setAppFilterExtensions | String | 返される結果を制限するファイル拡張子のカンマ区切りのリスト |
| setAppFilterMimeTypes | String | 返される結果を制限するMIMEタイプのカンマ区切りのリスト |
| languageCode | String | 言語コード |
1.3. レスポンスの内容
AppList
| フィールド | メソッド | 戻り値 | 説明 |
|---|---|---|---|
| defaultAppIds | getDefaultAppIds | List<String> | ユーザーがデフォルトで使用するように指定したアプリIDのリスト |
| kind | getKind | String | リソースの種類 固定文字列:"drive#appList" |
| selfLink | getSelfLink | String | このリストへのリンク |
| items | getItems | List<App> | アプリのリスト |
2. アプリの情報を取得
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
DriveScopes.DRIVE
DriveScopes.DRIVE_APPDATA
DriveScopes.DRIVE_READONLY
DriveScopes.DRIVE_FILE
DriveScopes.DRIVE_METADATA
DriveScopes.DRIVE_METADATA_READONLY
DriveScopes.DRIVE_READONLY
2.2. 実行
情報を取得したいアプリIDを指定します。
setFieldsで取得したいフィールド(App)を指定できます。
指定しない場合は、必要最小限のレスポンスしか返ってきません。
ここでは「*」(全て取得)を指定しています。
public static void main(String[] args) throws Exception{
Drive drive = getDrive();
Drive.Apps apps = drive.apps();
Drive.Apps.Get get = apps.get("アプリID");
get.setFields(*);
App res = get.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
GET: https://www.googleapis.com/drive/v3/apps/{アプリID}
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
2.3. レスポンスの内容
App
| フィールド | メソッド | 戻り値 | 説明 |
|---|---|---|---|
| id | getId | String | アプリのID |
| name | getName | String | アプリの名前 |
| kind | getKind | String | リソースの種類 固定文字列:"drive#app" |
| objectType | getObjectType | String | このアプリが作成するオブジェクトのタイプ |
| supportsCreate | getSupportsCreate | Boolean | このアプリがオブジェクトの作成をサポートしているか |
| productUrl | getProductUrl | String | このアプリの製品リストへのリンク |
| primaryMimeTypes | getPrimaryMimeTypes | List<String> | プライマリ MIMEタイプのリスト |
| secondaryMimeTypes | getSecondaryMimeTypes | List<String> | セカンダリ MIMEタイプのリスト |
| primaryFileExtensions | getPrimaryFileExtensions | List<String> | プライマリファイル拡張子のリスト |
| secondaryFileExtensions | getSecondaryFileExtensions | List<String> | 二次ファイル拡張子のリスト |
| supportsImport | getSupportsImport | Boolean | このアプリが Googleドキュメントからのインポートをサポートしているか |
| installed | getInstalled | Boolean | アプリがインストールされているか |
| authorized | getAuthorized | Boolean | アプリがユーザーのドライブ上のデータにアクセスすることを承認されているか |
| icons | getIcons | List<AppIcons> | アプリのさまざまなアイコン |
| useByDefault | getUseByDefault | Boolean | アプリがサポートするタイプのデフォルトのハンドラーとして選択されているか |
| shortDescription | getShortDescription | String | アプリの簡単な説明 |
| longDescription | getLongDescription | String | アプリの詳細な説明 |
| supportsMultiOpen | getSupportsMultiOpen | Boolean | このアプリが複数のファイルを開くことをサポートしているか |
| productId | getProductId | String | このアプリの商品リストのID |
| openUrlTemplate | getOpenUrlTemplate | String | このアプリでファイルを開くためのテンプレートURL |
| createUrl | getCreateUrl | String | このアプリでファイルを作成するためのURL |
| createInFolderTemplate | getCreateInFolderTemplate | String | このアプリを使用して特定のフォルダーにファイルを作成するためのテンプレート URL |
| supportsOfflineCreate | getSupportsOfflineCreate | Boolean | このアプリがオフライン時のファイルの作成をサポートするか |
| hasDriveWideScope | getHasDriveWideScope | Boolean | アプリがドライブ全体のスコープを持つか |
AppIcons
| メソッド | 戻り値 | 説明 |
|---|---|---|
| getSize | Integer | アイコンのサイズ |
| getCategory | String | アイコンのカテゴリ |
| getIconUrl | String | アイコンのURL |
アイコンのカテゴリ
| 定義値 | 内容 |
|---|---|
| application | アプリケーションのアイコン |
| document | アプリに関連付けられたファイルのアイコン |
| documentShared | アプリに関連付けられた共有ファイルのアイコン |
おしまい。。