このページでは、Google Workspace Events API を使用してアプリが登録できる Google ドライブのイベントについて説明します。必要なイベントの種類を決定したら、サブスクリプションを作成して、ドライブからイベントの受信を開始します。
ドライブ用のアプリの開発について詳しくは、 Google Drive API の概要をご覧ください。
サポートされているドライブ イベント
Google Workspace サブスクリプションでは、ドライブで行われた次の種類の変更に関するイベントを受信できます。
- ファイルは次のとおりです。
- フォルダまたは共有ドライブに追加された。
- フォルダまたは共有ドライブに移動された。
- 編集済みまたは新しいリビジョンがアップロードされた。
- ゴミ箱に移動された、またはゴミ箱から削除された。
- ファイルに対するアクセス提案が作成または解決された。
イベントをモニタリングできるリソース
イベントを受信するには、監視するドライブ リソースを指定します。これは、サブスクリプションのターゲット リソースと呼ばれます。
Google Workspace Events API は、ドライブの次のターゲット リソースをサポートしています。
| ターゲット リソース | 形式 | 制限事項(該当する場合) |
|---|---|---|
| ファイル |
//drive.googleapis.com/files/FILE
ここで、FILE は Drive API の |
サブスクリプションを承認するユーザーは、サブスクライブするイベントに関連するサブスクリプション内のファイルに対する権限を持っている必要があります。 |
| 共有ドライブ |
//drive.googleapis.com/drives/DRIVE
ここで、DRIVE は Drive API の |
サブスクリプションは、ユーザーが Google Workspace アカウントまたは Google アカウントを通じてメンバーになっている共有ドライブ内のアイテムのイベントのみを受信します。 |
サブスクリプション作成のイベントタイプ
ドライブ リソースのサブスクリプションを作成するときは、eventTypes[] フィールドを使用して、受信するイベントのタイプを指定します。イベントタイプは、CloudEvents 仕様に従って google.workspace.APPLICATION.RESOURCE.VERSION.ACTION などの形式で指定されます。
たとえば、フォルダまたは共有ドライブでファイルが作成されたときのイベントを受信するには、ファイルがターゲット リソースとして指定され、イベントタイプが google.workspace.drive.file.v3.created として指定されます。ファイルに対するアクセス提案の作成に関するイベントを受信するには、アクセス提案をターゲット リソースとして指定し、イベントタイプを google.workspace.drive.accessproposal.v3.created として指定します。イベントの仕組みについて詳しくは、Google Workspace イベントの構造をご覧ください。
次の表に、ドライブ リソースのサブスクリプションでサポートされているイベントタイプを示します。
| イベント タイプ | 形式 | リソースデータ | ||
|---|---|---|---|---|
| ファイルへの登録 | ||||
| ファイルがフォルダまたは共有ドライブに追加された。 |
|
|
||
| ファイルがフォルダまたは共有ドライブに移動された。 |
|
|
||
| ファイルが編集されたか、新しいリビジョンがアップロードされた。 |
|
|
||
| ファイルが削除されます。 |
|
|
||
| ファイルがゴミ箱に移動された。 |
|
|
||
| ファイルがゴミ箱から削除された。 |
|
|
||
| ファイルに対するアクセス提案が作成された。 |
|
|
||
| ファイルに対するアクセス提案が解決された。 |
|
|
||
| 共有ドライブのサブスクリプション | ||||
| ファイルがフォルダまたは共有ドライブに追加された。 |
|
|
||
| ファイルがフォルダまたは共有ドライブに移動された。 |
|
|
||
| ファイルが編集されたか、新しいリビジョンがアップロードされた。 |
|
|
||
| ファイルが削除されます。 |
|
|
||
| ファイルがゴミ箱に移動された。 |
|
|
||
| ファイルがゴミ箱から削除された。 |
|
|
||
| ファイルに対するアクセス提案が作成された。 |
|
|
||
| ファイルに対するアクセス提案が解決された。 |
|
|
||
イベントデータ
このセクションでは、ドライブのイベントのイベントデータとペイロードの例について説明します。
Google Workspace サブスクリプションがドライブからイベントを受信すると、data フィールドにイベントのペイロードが含まれます。このペイロードには、変更された Google Workspace リソースに関する情報が含まれています。たとえば、ファイル イベントをサブスクライブしている場合、これらのイベントのペイロードには、変更された file リソースに関する情報が含まれます。
イベント ペイロードのリソースデータ
サブスクリプションを作成するときに、ペイロードにリソースの詳細を含めるか、リソースの名前のみを含めるかを指定できます。たとえば、ドライブ内のファイルに関するイベントを受信する場合は、イベント ペイロードで受信する files リソースのフィールドを指定できます。
次の表に、Drive リソースのサブスクリプションの JSON ペイロードの例を示します。ファイル ID には、files/^[01][0-9a-zA-Z_-]+$/ の形式で英数字と一部の特殊文字が含まれます。例: files/1aaabbbAAABBB111222-_。サブスクリプションが受信する各イベントのペイロードは、イベントの data フィールドに表示されます。
| 例 | イベント タイプ | JSON ペイロード |
|---|---|---|
ユーザーがフォルダまたは共有ドライブにファイルを追加する。 |
|
リソース データを含む
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
リソースデータを除外する
{
"file": {
"id": "FILE_ID"
}
}
|
ユーザーがファイルをフォルダまたは共有ドライブに移動します。 |
|
リソース データを含む
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
リソースデータを除外する
{
"file": {
"id": "FILE_ID"
}
}
|
ユーザーがファイルを編集したか、新しいリビジョンがアップロードされた。 |
|
リソース データを含む
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
リソースデータを除外する
{
"file": {
"id": "FILE_ID"
}
}
|
ユーザーがファイルを削除します。 |
|
リソース データを含む
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
リソースデータを除外する
{
"file": {
"id": "FILE_ID"
}
}
|
ユーザーがファイルをゴミ箱に移動します。 |
|
リソース データを含む
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
リソースデータを除外する
{
"file": {
"id": "FILE_ID"
}
}
|
ユーザーがゴミ箱からファイルを復元します。 |
|
リソース データを含む
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
リソースデータを除外する
{
"file": {
"id": "FILE_ID"
}
}
|
ユーザーがファイルに対するアクセス提案を作成します。 |
|
リソース データを含む
{
"accessProposal": [
{
"file_id": "FILE_ID",
"proposalId": "PROPOSAL_ID",
"recipientEmailAddress": "63",
"requesterEmailAddress": "application/vnd.google-apps.document",
"requestMessage": "grant me access to this file",
"rolesAndViews": [
{
"role": "writer",
"view": "published"
}
]
}
]
}
リソースデータを除外する
{
"accessProposal": [
{
"proposalId": "PROPOSAL_ID"
}
]
}
|
ユーザーがファイルに対するアクセス提案を解決した。 |
|
リソース データを含む
{
"accessProposal": [
{
"file_id": "FILE_ID",
"proposalId": "PROPOSAL_ID",
"recipientEmailAddress": "63",
"requesterEmailAddress": "application/vnd.google-apps.document",
"requestMessage": "resolve access to this file",
"rolesAndViews": [
{
"role": "writer",
"view": "published"
}
]
}
]
}
リソースデータを除外する
{
"accessProposal": [
{
"proposalId": "PROPOSAL_ID"
}
]
}
|
制限事項
DriveOptionsのincludeDescendantsブール値フィールドがtrueの場合、イベントをトリガーしたファイルが Drive サブスクリプションに使用されるフォルダの何層も下にネストされている場合でも、共有ドライブとフォルダの Drive サブスクリプションは常にイベントをディスパッチします。- フォルダでサブスクリプションを作成しても、ユーザーまたはアプリケーションにアクセス権が付与されていない場合、ファイル階層内のすべてのイベントを受信できないことがあります。この場合、サブスクリプションは有効なままですが、アクセスできないリソースのイベントは受信されません。
- サブスクリプションは、すべてのファイルとフォルダのイベントでサポートされていますが、共有ドライブのルートフォルダではサポートされていません。サブスクリプションは、共有ドライブ内のファイルとフォルダでのみサポートされます。共有ドライブのルートフォルダに直接変更を加えても、イベントはトリガーされません。
- サブスクリプションを承認するユーザーには、登録するイベントに対応するファイルに対する権限が必要です。
- サブスクリプションは、ユーザーが Google Workspace アカウントまたは Google アカウントでアクセスできるリソースのイベントのみを受信します。