Google ドライブのイベントに登録する

このページでは、Google Workspace Events API を使用してアプリが登録できる Google ドライブのイベントについて説明します。必要なイベントの種類を決定したら、サブスクリプションを作成して、ドライブからイベントの受信を開始します。

ドライブ用のアプリの開発について詳しくは、 Google Drive API の概要をご覧ください。

サポートされているドライブ イベント

Google Workspace サブスクリプションでは、ドライブで行われた次の種類の変更に関するイベントを受信できます。

  • ファイルに対するアクセス提案が作成または解決された。

  • ファイルまたは共有ドライブ内のファイルでコメントが作成、編集、解決、再開、削除された。

  • ファイルは次のいずれかです。

    • フォルダまたは共有ドライブに追加された。
    • フォルダまたは共有ドライブに移動された。
    • 編集済みまたは新しいリビジョンがアップロードされた。
    • ゴミ箱に移動された、またはゴミ箱から削除された。
    • 名前が変更されました(ファイルまたはフォルダのタイトルが変更されました)。
  • ファイルまたは共有ドライブ内のファイルにあるコメント スレッドで返信が作成、編集、削除された。

イベントをモニタリングできるリソース

イベントを受信するには、モニタリングするドライブ リソースを指定します。これは、サブスクリプションのターゲット リソースと呼ばれます。

Google Workspace Events API は、ドライブの次のターゲット リソースをサポートしています。

ターゲット リソース 形式 制限事項(該当する場合)
ファイル //drive.googleapis.com/files/FILE

ここで、FILE は Drive API の files リソースの リソース名の ID です。ID は、ファイルの URL から取得するか、files.list メソッドを使用して取得できます。

サブスクリプションを承認するユーザーは、サブスクライブするイベントに関連するサブスクリプション内のファイルに対する権限を持っている必要があります。
共有ドライブ //drive.googleapis.com/drives/DRIVE

ここで、DRIVE は Drive API の drives リソースの リソース名の ID です。ID は、ドライブの URL から取得するか、drives.list メソッドを使用して取得できます。

サブスクリプションは、ユーザーが 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.drive.accessproposal.v3.created

accessproposal

ファイルに対するアクセス提案が解決された。

google.workspace.drive.accessproposal.v3.resolved

accessproposal

ファイルまたは共有ドライブ内のファイルにコメントが作成された。

google.workspace.drive.comment.v3.created

comment

ファイルまたは共有ドライブ内のファイルに対するコメントが編集された。

google.workspace.drive.comment.v3.edited

comment

ファイルまたは共有ドライブ内のファイルでコメントが解決された。

google.workspace.drive.comment.v3.resolved

comment

ファイルまたは共有ドライブ内のファイルでコメントが再度開かれた。

google.workspace.drive.comment.v3.reopened

comment

ファイルまたは共有ドライブ内のファイルに対するコメントが削除された。

google.workspace.drive.comment.v3.deleted

comment

ファイルがフォルダまたは共有ドライブに追加された。

google.workspace.drive.file.v3.created

file

ファイルがフォルダまたは共有ドライブに移動された。

google.workspace.drive.file.v3.moved

file

ファイルが編集されたか、新しいリビジョンがアップロードされた。

google.workspace.drive.file.v3.contentChanged

file

ファイルが削除されます。

google.workspace.drive.file.v3.deleted

file

ファイルがゴミ箱に移動された。

google.workspace.drive.file.v3.trashed

file

ファイルがゴミ箱から削除された。

google.workspace.drive.file.v3.untrashed

file

ファイルの名前が変更された。

google.workspace.drive.file.v3.renamed

file

ファイルまたは共有ドライブ内のファイルにあるコメント スレッドに返信が作成されます。

google.workspace.drive.reply.v3.created

reply

ファイルまたは共有ドライブ内のファイルにあるコメント スレッドで返信が編集された。

google.workspace.drive.reply.v3.edited

reply

ファイルまたは共有ドライブ内のファイルにあるコメント スレッドの返信が削除された。

google.workspace.drive.reply.v3.deleted

reply

イベントデータ

このセクションでは、ドライブのイベントのイベントデータとペイロードの例について説明します。

Google Workspace サブスクリプションがドライブからイベントを受信すると、data フィールドにイベントのペイロードが含まれます。このペイロードには、変更された Google Workspace リソースに関する情報が含まれています。たとえば、ファイル イベントをサブスクライブしている場合、これらのイベントのペイロードには、変更された files リソースに関する情報が含まれます。

イベント ペイロードのリソースデータ

サブスクリプションを作成するときに、ペイロードにリソースの詳細を含めるか、リソースの名前のみを含めるかを指定できます。たとえば、ドライブ内のファイルに関するイベントを受信する場合は、イベント ペイロードで受信する files リソースのフィールドを指定できます。

次の表に、Drive リソースのサブスクリプションの JSON ペイロードの例を示します。ファイル ID には、files/^[01][0-9a-zA-Z_-]+$/ の形式で英数字と一部の特殊文字が含まれます。例: files/1aaabbbAAABBB111222-_サブスクリプションが受信する各イベントのペイロードは、イベントの data フィールドに表示されます。

イベント タイプ JSON ペイロード

ユーザーがファイルに対するアクセス提案を作成します。

google.workspace.drive.accessproposal.v3.created

リソースデータを含む
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "alex@altostrat.com",
        "requesterEmailAddress": "kai@cymbalgroup.com",
        "requestMessage": "grant me access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
リソースデータを除外する
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

ユーザーがファイルに対するアクセス提案を解決した。

google.workspace.drive.accessProposal.v3.resolved

リソースデータを含む
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "alex@altostrat.com",
        "requesterEmailAddress": "kai@cymbalgroup.com",
        "requestMessage": "resolve access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
リソースデータを除外する
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

ユーザーがファイルにコメントを作成します。

google.workspace.drive.comment.v3.created

リソースデータを含む
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
リソースデータを除外する
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

ユーザーがファイルに対するコメントを編集します。

google.workspace.drive.comment.v3.edited

リソースデータを含む
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
リソースデータを除外する
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

ユーザーがファイルに対するコメントを解決した。

google.workspace.drive.comment.v3.resolved

リソースデータを含む
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
リソースデータを除外する
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

ユーザーがファイルに対するコメントを再度開いた場合。

google.workspace.drive.comment.v3.reopened

リソースデータを含む
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
リソースデータを除外する
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

ユーザーがファイル上のコメントを削除した場合。

google.workspace.drive.comment.v3.deleted

リソースデータを含む
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
リソースデータを除外する
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

ユーザーがフォルダまたは共有ドライブにファイルを追加する。

google.workspace.drive.file.v3.created

リソースデータを含む
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
リソースデータを除外する
{
    "file": {
      "id": "FILE_ID"
    }
}
      

ユーザーがファイルをフォルダまたは共有ドライブに移動します。

google.workspace.drive.file.v3.moved

リソースデータを含む
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
リソースデータを除外する
{
    "file": {
      "id": "FILE_ID"
    }
}
      

ユーザーがファイルを編集したか、新しいリビジョンがアップロードされた。

google.workspace.drive.file.v3.contentChanged

リソースデータを含む
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
リソースデータを除外する
{
    "file": {
      "id": "FILE_ID"
    }
}
      

ユーザーがファイルを削除します。

google.workspace.drive.file.v3.deleted

リソースデータを含む
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
リソースデータを除外する
{
    "file": {
      "id": "FILE_ID"
    }
}
      

ユーザーがファイルをゴミ箱に移動します。

google.workspace.drive.file.v3.trashed

リソースデータを含む
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
リソースデータを除外する
{
    "file": {
      "id": "FILE_ID"
    }
}
      

ユーザーがゴミ箱からファイルを復元します。

google.workspace.drive.file.v3.untrashed

リソースデータを含む
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
リソースデータを除外する
{
    "file": {
      "id": "FILE_ID"
    }
}
      

ユーザーがファイルまたはフォルダの名前を変更します。

google.workspace.drive.file.v3.renamed

リソースデータを含む
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
リソースデータを除外する
{
    "file": {
      "id": "FILE_ID"
    }
}
      

ユーザーがコメント スレッドにコメントの返信を作成します。

google.workspace.drive.reply.v3.created

リソースデータを含む
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
リソースデータを除外する
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

ユーザーがコメント スレッドのコメントへの返信を編集します。

google.workspace.drive.reply.v3.edited

リソースデータを含む
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
リソースデータを除外する
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

ユーザーがコメント スレッドのコメントへの返信を削除します。

google.workspace.drive.reply.v3.deleted

リソースデータを含む
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
リソースデータを除外する
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

制限事項

  • DriveOptionsincludeDescendants ブール値フィールドが true の場合、共有ドライブとフォルダのドライブ サブスクリプションは、イベントをトリガーしたファイルがドライブ サブスクリプションに使用されたフォルダの何層も下にある場合でも、常にイベントをディスパッチします。
  • フォルダでサブスクリプションを作成しても、ユーザーまたはアプリケーションにアクセス権が付与されていない場合、ファイル階層内のすべてのイベントを受信できないことがあります。この場合、サブスクリプションは有効なままですが、アクセスできないリソースのイベントは受信されません。
  • サブスクリプションは、すべてのファイルとフォルダのイベントでサポートされていますが、共有ドライブのルートフォルダではサポートされていません。サブスクリプションは、共有ドライブ内のファイルとフォルダでのみサポートされています。共有ドライブのルートフォルダに直接変更を加えても、イベントはトリガーされません。
  • サブスクリプションを承認するユーザーには、登録するイベントに対応するファイルに対する権限が必要です。
  • サブスクリプションは、ユーザーが Google Workspace アカウントまたは Google アカウントでアクセスできるリソースのイベントのみを受信します。