はじめに
NI+C 大岡です。
本ブログは、GASを利用して共有ドライブを作成する方法をご紹介します。
1.事前準備
1.1. Google Drive API の Advanced Service の有効化
「エディタ」 > 「サービスを追加」 > 「Drive API」 > 「追加」を選択しDriv APIを有効にします。
(※今回はバージョンv3で設定しています)
1.2. マニフェストファイル(appsscript.json)の表示・編集
「プロジェクトの設定」 > 「「appsscript.json」マニフェスト ファイルをエディタで表示する」にチェックを入れて、スクリプト画面に「appsscript.json」を表示します。
1.3. 「appsscript.json」に以下コードを追加する。 "oauthScopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/script.external_request"
]
oauthScopesは、GoogleサービスやAPIにアクセスするための権限を指定するものです。
このコードで指定されている2つのスコープは以下の内容を示しています。
・https://www.googleapis.com/auth/drive
Googleドライブへのアクセスを許可するスコープで、Googleドライブ内のファイルを作成、
表示、編集、削除といった操作を実行できます。
・https://www.googleapis.com/auth/script.external_request
Google Apps Script(GAS)が外部のHTTPリソースにアクセスすることを許可するスコープ
で、Google Apps Scriptで外部サービスを利用した処理を実装することが可能になります。
追加後のイメージ{
"timeZone": "Asia/Tokyo",
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"dependencies": {
"enabledAdvancedServices": [
{
"userSymbol": "Drive",
"version": "v3",
"serviceId": "drive"
}
]
},
"oauthScopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/script.external_request"
]
}
2.共有ドライブの作成
以下のスクリプトを実行し、共有ドライブを作成します。
今回は「test_o3ka」の共有ドライブを作成してみます。function createSharedDrive() {
var makingdriveName = 'test_o3ka'; //自分が作成したい共有ドライブ名を入力する
Logger.log("作成する共有ドライブ名:" + makingdriveName);
var url = 'https://www.googleapis.com/drive/v3/drives?requestId= ' + Utilities.getUuid();
Logger.log("url:" + url);
var options = {
method: 'POST',
contentType: 'application/json',
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
},
payload: JSON.stringify({
name: makingdriveName
}),
muteHttpExceptions: true
};
var response = UrlFetchApp.fetch(url, options);
var result = JSON.parse(response.getContentText());
Logger.log(result.id);
var driveId = result.id;
}
共有ドライブに「test_o3ka」が作成されていることが確認できます。
<処理概要>
2.1. 共有ドライブ名の設定var makingdriveName = 'test_o3ka'; //自分が作成したい共有ドライブ名を入力する
2.2. APIリクエストURLの構築var url = 'https://www.googleapis.com/drive/v3/drives?requestId= ' + Utilities.getUuid();
Logger.log("url:" + url);
・Google Drive API の「共有ドライブ作成エンドポイント」を使用しています。
エンドポイントは https://www.googleapis.com/drive/v3/drives です。
・クエリパラメータ requestId にはユニークなリクエストIDを指定しています。
この値はUtilities.getUuid()によって自動生成されます。このIDはリクエストの重複を防ぐためのものです。
・Logger.log("url:" + url) はデバッグ用コードで、生成されたURLをログに出力します。
2.3. HTTPリクエストのオプション設定 var options = {
method: 'POST',
contentType: 'application/json',
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
},
payload: JSON.stringify({
name: makingdriveName
}),
muteHttpExceptions: true
};
・method: 'POST':
リクエストメソッドが POST であることを指定し、APIにデータを送信します。
・Authorization:
Google Apps Script の OAuth トークン (ScriptApp.getOAuthToken()) を利用して、
Google Drive API への認証を実施します。
・payload:
作成したい共有ドライブの名前を JSON フォーマットとして送信します。
キーnameはGoogle Drive API の仕様で共有ドライブ名を指定するためのキーです。
・muteHttpExceptions: true:
HTTPエラーが発生しても例外をスルーせずに応答内容を取得できるようにします。
2.4. APIリクエストを実行する var response = UrlFetchApp.fetch(url, options);
・UrlFetchApp.fetch() を使って作成した共有ドライブ用のリクエストを Google Drive APIに送信します。
・APIリクエストの結果が response に格納されます。
2.5. レスポンスを解析して共有ドライブIDを取得var result = JSON.parse(response.getContentText());
var driveId = result.id;
・APIレスポンスから取得した情報を JSON フォーマットとして解析し、その内容をresult に保存します。
・Google Drive API のレスポンスに含まれる共有ドライブの一意のIDを取得し、このスクリプトでは driveId
として保存しています。
おわりに
今回は、Google Apps Script (GAS) を用いた共有ドライブの作成手順を解説しました。
自動で共有ドライブを作成したい際に活用してみてください。
Google Cloud、Google Workspace に関するご相談はXIMIXへ!
Google Cloud、Google Workspaceに関する お問い合わせはこちら
XIMIX(サイミクス)は商標登録出願中です
- カテゴリ:
- クラウド
- キーワード:
- Google Cloud