Na tej stronie opisujemy zdarzenia na Dysku Google, które Twoja aplikacja może subskrybować za pomocą interfejsu Google Workspace Events API. Po określeniu, jakich typów zdarzeń potrzebujesz, utwórz subskrypcję, aby zacząć otrzymywać zdarzenia z Dysku.
Więcej informacji o tworzeniu aplikacji na Dysku znajdziesz w omówieniu interfejsu Google Drive API.
Obsługiwane zdarzenia na Dysku
Abonamenty Google Workspace umożliwiają otrzymywanie zdarzeń dotyczących tych typów zmian na Dysku:
W przypadku pliku zostanie utworzona lub rozpatrzona prośba o dostęp.
Komentarz jest tworzony, edytowany, zamykany, ponownie otwierany lub usuwany w pliku lub pliku na dysku współdzielonym.
Plik to:
- dodano do folderu lub dysku współdzielonego;
- przeniesiony do folderu lub na dysk współdzielony;
- Edytowana lub nowa wersja została przesłana.
- przeniesione do kosza lub usunięte z kosza.
- zmieniono nazwę (tytuł pliku lub folderu);
Odpowiedź została utworzona, edytowana lub usunięta w wątku komentarzy w pliku lub w pliku na dysku współdzielonym.
Zasoby, które możesz monitorować pod kątem zdarzeń
Aby odbierać zdarzenia, musisz określić zasób na Dysku, który ma być monitorowany. Jest on nazywany zasobem docelowym subskrypcji.
Interfejs Google Workspace Events API obsługuje te zasoby docelowe w przypadku Dysku:
| Zasób docelowy | Format | Ograniczenia (w odpowiednich przypadkach) |
|---|---|---|
| Plik |
//drive.googleapis.com/files/FILE
gdzie FILE to identyfikator w
nazwie zasobu zasobu |
Użytkownik, który autoryzuje subskrypcję, musi mieć uprawnienia do pliku w subskrypcji w odniesieniu do zdarzenia subskrypcji. |
| Dysk współdzielony |
//drive.googleapis.com/drives/DRIVE
gdzie DRIVE to identyfikator w nazwie zasobu zasobu |
Subskrypcja otrzymuje tylko zdarzenia dotyczące elementów na dysku współdzielonym, na którym użytkownik jest członkiem za pomocą konta Google Workspace lub konta Google. |
Typy zdarzeń do tworzenia subskrypcji
Podczas tworzenia subskrypcji zasobu Dysku używasz pola
eventTypes[]
do określania typów zdarzeń, które chcesz otrzymywać. Typy zdarzeń są sformatowane zgodnie ze specyfikacją CloudEvents, np. google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.
Aby na przykład otrzymywać zdarzenia dotyczące utworzenia pliku w folderze lub na dysku współdzielonym, jako zasób docelowy wskaż plik, a jako typ zdarzenia podaj google.workspace.drive.file.v3.created. Aby otrzymywać zdarzenia dotyczące tworzenia propozycji dostępu do pliku, określ propozycję dostępu jako zasób docelowy, a typ zdarzenia jako google.workspace.drive.accessproposal.v3.created. Więcej informacji o tym, jak działają zdarzenia, znajdziesz w artykule Struktura zdarzeń Google Workspace.
W tabeli poniżej znajdziesz informacje o tym, które typy zdarzeń są obsługiwane w przypadku subskrypcji zasobów na Dysku:
| Typ wydarzenia | Format | Dane zasobów | ||
|---|---|---|---|---|
| Subskrypcje plików i dysków współdzielonych | ||||
| W pliku tworzona jest propozycja dostępu. |
|
|
||
| Propozycja dostępu do pliku została rozpatrzona. |
|
|
||
| Komentarz zostanie utworzony w pliku lub pliku na dysku współdzielonym. |
|
|
||
| Komentarz w pliku lub pliku na dysku współdzielonym został zmodyfikowany. |
|
|
||
| Komentarz do pliku lub pliku na dysku współdzielonym został zamknięty. |
|
|
||
| Komentarz w pliku lub pliku na dysku współdzielonym zostaje ponownie otwarty. |
|
|
||
| Komentarz jest usuwany z pliku lub pliku na dysku współdzielonym. |
|
|
||
| Plik zostanie dodany do folderu lub dysku współdzielonego. |
|
|
||
| Plik zostanie przeniesiony do folderu lub na dysk współdzielony. |
|
|
||
| Plik jest edytowany lub przesyłana jest nowa wersja. |
|
|
||
| Plik zostanie usunięty. |
|
|
||
| Plik został przeniesiony do kosza. |
|
|
||
| Plik zostanie usunięty z kosza. |
|
|
||
| Nazwa pliku została zmieniona. |
|
|
||
| Odpowiedź jest tworzona w wątku komentarzy w pliku lub w pliku na dysku współdzielonym. |
|
|
||
| Odpowiedź jest edytowana w wątku komentarzy w pliku lub w pliku na dysku współdzielonym. |
|
|
||
| Odpowiedź jest usuwana z wątku komentarzy w pliku lub pliku na dysku współdzielonym. |
|
|
||
Dane zdarzenia
W tej sekcji opisujemy dane zdarzeń i przykładowe ładunki zdarzeń w Drive.
Gdy subskrypcja Google Workspace otrzyma zdarzenie z Dysku, pole data będzie zawierać ładunek zdarzenia. Ten ładunek zawiera informacje o zmienionym zasobie Google Workspace. Jeśli na przykład subskrybujesz zdarzenia dotyczące plików, ładunek tych zdarzeń zawiera informacje o zasobie files, który uległ zmianie.
Dane zasobu w ładunku zdarzenia
Podczas tworzenia subskrypcji możesz określić, czy chcesz, aby ładunek zawierał szczegóły zasobu, czy tylko jego nazwę. Jeśli na przykład chcesz otrzymywać zdarzenia dotyczące plików na Dysku, możesz określić, które pola zasobu files chcesz otrzymywać w ładunku zdarzenia.
W tabeli poniżej znajdziesz przykłady ładunków JSON w przypadku subskrypcji zasobu Drive. Identyfikator pliku zawiera litery, cyfry i niektóre znaki specjalne w formacie files/^[01][0-9a-zA-Z_-]+$/. Na przykład:files/1aaabbbAAABBB111222-_. W przypadku każdego zdarzenia, które otrzymuje subskrypcja, ładunek pojawia się w polu data zdarzenia:
| Przykład | Typ wydarzenia | Ładunek JSON |
|---|---|---|
Użytkownik tworzy propozycję dostępu do pliku. |
|
Zawiera dane o zasobach
{
"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"
}
]
}
]
}
Wyklucza dane o zasobach
{
"accessProposal": [
{
"proposalId": "PROPOSAL_ID"
}
]
}
|
Użytkownik rozpatruje propozycję dostępu do pliku. |
|
Zawiera dane o zasobach
{
"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"
}
]
}
]
}
Wyklucza dane o zasobach
{
"accessProposal": [
{
"proposalId": "PROPOSAL_ID"
}
]
}
|
Użytkownik tworzy komentarz do pliku. |
|
Zawiera dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Wyklucza dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Użytkownik edytuje komentarz w pliku. |
|
Zawiera dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Wyklucza dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
użytkownik zamknie komentarz do pliku, |
|
Zawiera dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Wyklucza dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
użytkownik ponownie otworzy komentarz do pliku, |
|
Zawiera dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Wyklucza dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
użytkownik usunie komentarz do pliku, |
|
Zawiera dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Wyklucza dane o zasobach
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Użytkownik dodaje plik do folderu lub dysku współdzielonego. |
|
Zawiera dane o zasobach
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Wyklucza dane o zasobach
{
"file": {
"id": "FILE_ID"
}
}
|
Użytkownik przenosi plik do folderu lub na dysk współdzielony. |
|
Zawiera dane o zasobach
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Wyklucza dane o zasobach
{
"file": {
"id": "FILE_ID"
}
}
|
Użytkownik edytuje plik lub przesyła nową wersję. |
|
Zawiera dane o zasobach
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Wyklucza dane o zasobach
{
"file": {
"id": "FILE_ID"
}
}
|
Użytkownik usuwa plik. |
|
Zawiera dane o zasobach
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Wyklucza dane o zasobach
{
"file": {
"id": "FILE_ID"
}
}
|
Użytkownik przenosi plik do kosza. |
|
Zawiera dane o zasobach
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Wyklucza dane o zasobach
{
"file": {
"id": "FILE_ID"
}
}
|
Użytkownik przywraca plik z kosza. |
|
Zawiera dane o zasobach
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Wyklucza dane o zasobach
{
"file": {
"id": "FILE_ID"
}
}
|
Użytkownik zmieni nazwę pliku lub folderu. |
|
Zawiera dane o zasobach
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Wyklucza dane o zasobach
{
"file": {
"id": "FILE_ID"
}
}
|
Użytkownik tworzy odpowiedź na komentarz w wątku komentarza. |
|
Zawiera dane o zasobach
{
"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"
}
}
Wyklucza dane o zasobach
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Użytkownik edytuje odpowiedź na komentarz w wątku komentarzy. |
|
Zawiera dane o zasobach
{
"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"
}
}
Wyklucza dane o zasobach
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Użytkownik usuwa odpowiedź na komentarz w wątku komentarza. |
|
Zawiera dane o zasobach
{
"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"
}
}
Wyklucza dane o zasobach
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Ograniczenia
- Gdy pole logiczne
includeDescendantswDriveOptionsma wartośćtrue, subskrypcje Dysku na dyskach i folderach współdzielonych zawsze wysyłają zdarzenie, nawet jeśli plik, który je wywołał, jest zagnieżdżony wiele poziomów poniżej folderu używanego do subskrypcji Dysku. - Nawet jeśli utworzysz subskrypcję folderu, możesz nie otrzymywać wszystkich zdarzeń w hierarchii plików, ponieważ użytkownik lub aplikacja mogą nie mieć do nich dostępu. W takim przypadku subskrypcja pozostanie aktywna, ale nie będziesz otrzymywać żadnych zdarzeń dotyczących zasobów, do których nie masz dostępu.
- Subskrypcje są obsługiwane w przypadku zdarzeń dotyczących wszystkich plików i folderów, ale nie w przypadku folderu głównego dysków współdzielonych. Subskrypcje są obsługiwane tylko w przypadku plików i folderów na dyskach współdzielonych. Zmiany wprowadzone bezpośrednio w folderze głównym dysku współdzielonego nie spowodują wywołania zdarzeń.
- Użytkownik, który autoryzuje subskrypcję, musi mieć uprawnienia do pliku odpowiadającego zdarzeniom, które subskrybuje.
- Subskrypcja otrzymuje tylko zdarzenia dotyczące zasobów, do których użytkownik ma dostęp za pomocą konta Google Workspace lub konta Google.