REST Resource: spaces.messages

Zasób: wiadomość

Wiadomość w Google Chat.

Zapis JSON
{
  "name": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "lastUpdateTime": string,
  "deleteTime": string,
  "text": string,
  "cards": [
    {
      object (Card)
    }
  ],
  "cardsV2": [
    {
      object (CardWithId)
    }
  ],
  "annotations": [
    {
      object (Annotation)
    }
  ],
  "thread": {
    object (Thread)
  },
  "space": {
    object (Space)
  },
  "fallbackText": string,
  "actionResponse": {
    object (ActionResponse)
  },
  "argumentText": string,
  "slashCommand": {
    object (SlashCommand)
  },
  "attachment": [
    {
      object (Attachment)
    }
  ],
  "matchedUrl": {
    object (MatchedUrl)
  },
  "threadReply": boolean,
  "clientAssignedMessageId": string,
  "emojiReactionSummaries": [
    {
      object (EmojiReactionSummary)
    }
  ],
  "deletionMetadata": {
    object (DeletionMetadata)
  }
}
Pola
name

string

Nazwa zasobu w formacie spaces/*/messages/*.

Przykład: spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB

sender

object (User)

Tylko dane wyjściowe. Użytkownik, który utworzył wiadomość. Jeśli Twoja aplikacja do obsługi czatu uwierzytelni się jako użytkownik, w danych wyjściowych pojawią się dane użytkownika name i type.

createTime

string (Timestamp format)

W przypadku pokoi utworzonych w Google Chat w momencie utworzenia wiadomości. To pole jest używane tylko w danych wyjściowych, chyba że jest używane w zaimportowanych pokojach.

W przypadku zaimportowanych pokoi ustaw w tym polu sygnaturę czasową, z której wiadomość została utworzona w źródle, aby zachować pierwotny czas utworzenia.

lastUpdateTime

string (Timestamp format)

Tylko dane wyjściowe. Czas ostatniej modyfikacji wiadomości przez użytkownika. Jeśli wiadomość nigdy nie była edytowana, to pole jest puste.

deleteTime

string (Timestamp format)

Tylko dane wyjściowe. Godzina usunięcia wiadomości w Google Chat. Jeśli wiadomość nigdy nie zostanie usunięta, to pole jest puste.

text

string

Treść wiadomości. Pierwszy link do obrazu, filmu, strony internetowej lub innego elementu, który można wyświetlić na podglądzie, generuje element podglądu.

cards[]
(deprecated)

object (Card)

Wycofane: użyj cardsV2.

Bogate, sformatowane i interaktywne karty, których możesz używać do wyświetlania elementów interfejsu, takich jak sformatowane teksty, przyciski i klikalne obrazy. Karty są zwykle wyświetlane pod zwykłym tekstem wiadomości. cards i cardsV2 mogą mieć maksymalnie 32 KB.

cardsV2[]

object (CardWithId)

Bogate i interaktywne karty z elementami interfejsu i edytowalnymi widżetami, w tym:

  • Sformatowany tekst
  • Przyciski
  • Obrazy, które można kliknąć
  • Pola wyboru
  • Opcje
  • Widżety wejściowe.

Karty są zwykle wyświetlane pod tekstem wiadomości czatu, ale w niektórych sytuacjach mogą pojawiać się w innych miejscach, takich jak dialogi. Maksymalny rozmiar karty może wynosić 32 KB.

cardId to unikalny identyfikator wśród kart w tej samej wiadomości, który służy do identyfikowania wartości wejściowych użytkowników.

Obecnie obsługiwane widżety to:

  • TextParagraph
  • DecoratedText
  • Image
  • ButtonList
  • Divider
  • TextInput
  • SelectionInput
  • Grid
annotations[]

object (Annotation)

Tylko dane wyjściowe. Adnotacje powiązane z elementem text w tej wiadomości.

thread

object (Thread)

Wątek, do którego należy wiadomość. Więcej informacji znajdziesz w artykule Rozpoczynanie wątku wiadomości i odpowiadanie na niego.

space

object (Space)

Jeśli Twoja aplikacja do obsługi czatu uwierzytelni się jako użytkownik, w danych wyjściowych pojawi się spacja name.

fallbackText

string

Opis kart informacyjnych w formacie zwykłego tekstu, używany, gdy nie można wyświetlić kart, np. powiadomień na urządzenia mobilne.

actionResponse

object (ActionResponse)

Podaj tylko dane wejściowe. Parametry, których aplikacja Google Chat może używać do konfigurowania sposobu publikowania odpowiedzi.

argumentText

string

Tylko dane wyjściowe. Zwykła treść wiadomości ze wszystkimi wzmiankami w aplikacji do obsługi czatu.

slashCommand

object (SlashCommand)

Tylko dane wyjściowe. Informacje o poleceniu po ukośniku (w odpowiednich przypadkach).

attachment[]

object (Attachment)

Załącznik przesłany przez użytkownika.

matchedUrl

object (MatchedUrl)

Tylko dane wyjściowe. Adres URL w polu spaces.messages.text pasujący do wzorca podglądu linku. Więcej informacji znajdziesz w artykule Podgląd linków.

threadReply

boolean

Tylko dane wyjściowe. Gdy pole true jest odpowiedzią na wiadomość, jest to odpowiedź w wątku. Gdy wiadomość false jest widoczna w wątku najwyższego poziomu w pokoju, jest to pierwsza wiadomość w wątku lub wiadomość bez wątków.

Jeśli pokój nie obsługuje odpowiedzi w wątkach, to pole ma zawsze wartość false.

clientAssignedMessageId

string

Niestandardowa nazwa wiadomości w Google Chat podczas tworzenia. Musi zaczynać się od client- i zawierać tylko małe litery, cyfry oraz łączniki o długości do 63 znaków. Określ to pole, aby pobrać, zaktualizować lub usunąć wiadomość o określonej wartości. Przypisywanie niestandardowej nazwy powoduje, że aplikacja Google Chat zapamiętuje wiadomość bez zapisywania jej name w treści odpowiedzi zwróconej podczas jej tworzenia. Przypisanie niestandardowej nazwy nie zastępuje wygenerowanego pola name, czyli nazwy zasobu wiadomości. Zamiast tego ustawia nazwę niestandardową w polu clientAssignedMessageId, do którego można się odwoływać podczas późniejszych operacji, takich jak aktualizowanie czy usuwanie wiadomości. Więcej informacji znajdziesz w artykule Nadawanie nazwy utworzonej wiadomości.

emojiReactionSummaries[]

object (EmojiReactionSummary)

Tylko dane wyjściowe. Lista podsumowań emotikonów w wiadomości.

deletionMetadata

object (DeletionMetadata)

Tylko dane wyjściowe. Informacje o usuniętej wiadomości. Gdy ustawisz deleteTime, wiadomość zostanie usunięta.

Identyfikator karty

Widżety do określania aplikacji czatu.

Zapis JSON
{
  "cardId": string,
  "card": {
    object (Card)
  }
}
Pola
cardId

string

Wymagane w przypadku cardsV2 wiadomości. Podany przez aplikację identyfikator tego widżetu. Ograniczone do wiadomości.

card

object (Card)

Karty obsługują zdefiniowany układ, interaktywne elementy interfejsu, takie jak przyciski, oraz rich media, np. obrazy. Na tej karcie możesz prezentować szczegółowe informacje, zbierać informacje od użytkowników i prowadzić ich do kolejnego kroku.

Adnotacja

Adnotacje powiązane z zwykłym tekstem wiadomości.

Przykładowa treść zwykłego tekstu:

Hello @FooBot how are you!"

Odpowiednie metadane adnotacji:

"annotations":[{
  "type":"USER_MENTION",
  "startIndex":6,
  "length":7,
  "userMention": {
    "user": {
      "name":"users/{user}",
      "displayName":"FooBot",
      "avatarUrl":"https://goo.gl/aeDtrS",
      "type":"BOT"
    },
    "type":"MENTION"
   }
}]
Zapis JSON
{
  "type": enum (AnnotationType),
  "length": integer,
  "startIndex": integer,

  // Union field metadata can be only one of the following:
  "userMention": {
    object (UserMentionMetadata)
  },
  "slashCommand": {
    object (SlashCommandMetadata)
  }
  // End of list of possible types for union field metadata.
}
Pola
type

enum (AnnotationType)

Typ tej adnotacji.

length

integer

Długość podłańcucha w treści zwykłego tekstu wiadomości, do której odnosi się ta adnotacja.

startIndex

integer

Indeks początkowy (oparty na 0 i włącznie) w treści wiadomości tekstowej, której dotyczy ta adnotacja.

Pole sumy metadata. Dodatkowe metadane dotyczące adnotacji. metadata może mieć tylko jedną z tych wartości:
userMention

object (UserMentionMetadata)

Metadane wzmianki o użytkowniku

slashCommand

object (SlashCommandMetadata)

Metadane polecenia po ukośniku.

Typ adnotacji

Typ adnotacji.

Wartości w polu enum
ANNOTATION_TYPE_UNSPECIFIED Wartość domyślna wyliczenia. Nie używaj.
USER_MENTION Ktoś wspomniał o użytkowniku.
SLASH_COMMAND Wywołane jest polecenie po ukośniku.

Metadane wzmianki o użytkowniku

Metadane adnotacji wzmianek o użytkownikach (@).

Zapis JSON
{
  "user": {
    object (User)
  },
  "type": enum (Type)
}
Pola
user

object (User)

Wspomniał użytkownik.

type

enum (Type)

Typ wzmianki użytkownika.

Typ

Wartości w polu enum
TYPE_UNSPECIFIED Wartość domyślna wyliczenia. Nie używaj.
ADD Dodaj użytkownika do pokoju.
MENTION Wzmianka o użytkowniku w pokoju.

Metadane polecenia po ukośniku

Metadane adnotacji do poleceń po ukośniku (/).

Zapis JSON
{
  "bot": {
    object (User)
  },
  "type": enum (Type),
  "commandName": string,
  "commandId": string,
  "triggersDialog": boolean
}
Pola
bot

object (User)

Aplikacja Google Chat, której polecenie zostało wywołane.

type

enum (Type)

Typ polecenia po ukośniku.

commandName

string

Nazwa wywołanego polecenia po ukośniku.

commandId

string (int64 format)

Identyfikator polecenia wywoływanego polecenia po ukośniku.

triggersDialog

boolean

Wskazuje, czy polecenie po ukośniku dotyczy okna.

Typ

Wartości w polu enum
TYPE_UNSPECIFIED Wartość domyślna wyliczenia. Nie używaj.
ADD Dodaj aplikację Google Chat do pokoju.
INVOKE Wywołaj polecenie po ukośniku w pokoju.

Wątek

Wątek w Google Chat.

Zapis JSON
{
  "name": string,
  "threadKey": string
}
Pola
name

string

Nazwa zasobu wątku.

Przykład: spaces/{space}/threads/{thread}

threadKey

string

Opcjonalnie. Identyfikator wątku nieprzezroczystego. Aby rozpocząć lub dodać wątek, utwórz wiadomość i wskaż threadKey lub thread.name. Więcej informacji znajdziesz w artykule Rozpoczynanie wątku wiadomości i odpowiadanie na niego.

W przypadku innych żądań jest to pole tylko wyjściowe.

Działanie

Parametry, których aplikacja Google Chat może używać do konfigurowania sposobu publikowania odpowiedzi.

Zapis JSON
{
  "type": enum (ResponseType),
  "url": string,
  "dialogAction": {
    object (DialogAction)
  }
}
Pola
type

enum (ResponseType)

Podaj tylko dane wejściowe. Typ odpowiedzi aplikacji Google Chat.

url

string

Podaj tylko dane wejściowe. Adres URL do uwierzytelniania lub konfiguracji użytkowników. (Tylko dla REQUEST_CONFIG typów odpowiedzi).

dialogAction

object (DialogAction)

Podaj tylko dane wejściowe. Odpowiedź na zdarzenie związane z oknem. Musi towarzyszyć mu tekst ResponseType.Dialog.

Typ odpowiedzi

Typ odpowiedzi aplikacji Google Chat.

Wartości w polu enum
TYPE_UNSPECIFIED Domyślny typ obsługiwany jako NEW_MESSAGE.
NEW_MESSAGE Opublikuj jako nową wiadomość w temacie.
UPDATE_MESSAGE Zaktualizuj wiadomość w aplikacji Google Chat. Jest to dozwolone tylko w przypadku wydarzenia CARD_CLICKED, w którym typ nadawcy wiadomości to BOT.
UPDATE_USER_MESSAGE_CARDS Zaktualizuj karty w wiadomości od użytkownika. Jest to dozwolone tylko jako odpowiedź na zdarzenie MESSAGE z dopasowanym adresem URL lub zdarzenie CARD_CLICKED, w którym typ nadawcy wiadomości to HUMAN. Tekst jest ignorowany.
REQUEST_CONFIG Poproś użytkownika o dodatkowe uwierzytelnianie lub dodatkową konfigurację.
DIALOG Wyświetla okno.

Okno dialogowe

Zawiera okno i kod stanu żądania.

Zapis JSON
{
  "actionStatus": {
    object (ActionStatus)
  },

  // Union field action can be only one of the following:
  "dialog": {
    object (Dialog)
  }
  // End of list of possible types for union field action.
}
Pola
actionStatus

object (ActionStatus)

Podaj tylko dane wejściowe. Stan żądania do wywołania lub przesłania okna. W razie potrzeby wyświetla stan i komunikat dla użytkowników. na przykład z powodu błędu lub powodzenia.

Pole sumy action.

action może mieć tylko jedną z tych wartości:

dialog

object (Dialog)

Podaj tylko dane wejściowe. Okno żądania.

Dialog

Kod otaczający treść karty w oknie.

Zapis JSON
{
  "body": {
    object (Card)
  }
}
Pola
body

object (Card)

Podaj tylko dane wejściowe. Treść okna renderowanego w oknie modalnym. Aplikacje Google Chat nie obsługują tych kart: DateTimePicker, OnChangeAction.

Stan działania

Określa stan żądania, by wywołać lub przesłać okno.

Zapis JSON
{
  "statusCode": enum (Code),
  "userFacingMessage": string
}
Pola
statusCode

enum (Code)

Kod stanu.

userFacingMessage

string

Komunikat informujący użytkowników o stanie ich prośby. Jeśli zasada jest nieskonfigurowana, wysyłana jest ogólna wiadomość na podstawie statusCode.

Kod

Kanoniczne kody błędów interfejsów API gRPC.

Czasami może obowiązywać wiele kodów błędów. Usługi powinny zwracać najbardziej szczegółowy kod błędu. Na przykład: OUT_OF_RANGE zamiast FAILED_PRECONDITION, jeśli oba kody są stosowane. Podobnie preferuj NOT_FOUND lub ALREADY_EXISTS zamiast FAILED_PRECONDITION.

Wartości w polu enum
OK

To nie błąd; powodzenie zostało zwrócone.

Mapowanie HTTP: 200 OK

CANCELLED

Operacja została anulowana przez operatora.

Mapowanie HTTP: żądanie zamknięte przez klienta 499

UNKNOWN

Nieznany błąd. Ten błąd może się np. pojawić, gdy wartość Status otrzymana z innej przestrzeni adresowej należy do obszaru błędu, który nie jest znany w tym miejscu. Ten błąd mogą zostać również przekonwertowane na błędy zgłoszone przez interfejsy API, które nie zwracają wystarczającej ilości informacji o błędach.

Mapowanie HTTP: wewnętrzny błąd serwera 500

INVALID_ARGUMENT

Klient podał nieprawidłowy argument. Różni się to od FAILED_PRECONDITION. INVALID_ARGUMENT wskazuje argumenty, które stanowią problem bez względu na stan systemu (np. nieprawidłową nazwę pliku).

Mapowanie HTTP: błąd 400

DEADLINE_EXCEEDED

Termin upłynął przed wykonaniem operacji. W przypadku operacji, które zmieniają stan systemu, ten błąd może zostać zwrócony nawet wówczas, gdy operacja zakończyła się pomyślnie. Na przykład pomyślna odpowiedź serwera mogła być tak opóźniona, że termin upłynął.

Mapowanie HTTP: przekroczenie limitu czasu bramy 504

NOT_FOUND

Nie znaleziono żądanego elementu (np. pliku lub katalogu).

Uwaga dla programistów serwerów: jeśli żądanie zostanie odrzucone dla całej klasy użytkowników, na przykład stopniowego wdrażania funkcji lub listy dokumentów nieudokumentowanych, można użyć NOT_FOUND. Jeśli prośba zostanie odrzucona w przypadku niektórych użytkowników należących do klasy, np. kontroli dostępu opartej na użytkownikach, należy użyć właściwości PERMISSION_DENIED.

Mapowanie HTTP: nie znaleziono 404

ALREADY_EXISTS

Element, który klient próbował utworzyć (np. plik lub katalog), już istnieje.

Mapowanie HTTP: konflikt 409

PERMISSION_DENIED

Element wywołujący nie ma uprawnień do wykonania określonej operacji. PERMISSION_DENIED nie może być używane w przypadku odrzucenia z powodu wyczerpania zasobów (zamiast tego użyj RESOURCE_EXHAUSTED). Jeśli wywołania nie można zidentyfikować, nie można użyć metody PERMISSION_DENIED (zamiast tych błędów użyj UNAUTHENTICATED). Ten kod błędu nie sugeruje, że żądanie jest prawidłowe, czy żądany element istnieje albo spełnia inne warunki wstępne.

Mapowanie HTTP: 403 Zabronione

UNAUTHENTICATED

Żądanie nie ma prawidłowych danych uwierzytelniających dla tej operacji.

Mapowanie HTTP: błąd 401

RESOURCE_EXHAUSTED

Jeden zasób został wyczerpany – być może limit na użytkownika lub cały system plików zabrakło miejsca.

Mapowanie HTTP: 429 zbyt wiele żądań

FAILED_PRECONDITION

Operacja została odrzucona, ponieważ system nie znajduje się w stanie wymaganym do jej wykonania. Na przykład katalog do usunięcia nie jest pusty, operacja RMdir zostanie zastosowana do katalogu itp.

Decydując się na usługę FAILED_PRECONDITION, ABORTED lub UNAVAILABLE, usługi implementujące usługi mogą stosować te wskazówki: (a) użyć polecenia UNAVAILABLE, jeśli klient może spróbować ponownie nawiązać wywołanie nieudane. (b) Wybierz opcję ABORTED, jeśli klient powinien spróbować ponownie na wyższym poziomie. Jeśli na przykład określony przez klienta zestaw testów i zestawu kończy się niepowodzeniem, wskazuje to, że powinien on ponownie uruchomić sekwencję modyfikacji do odczytu i zapisu. (c) Użyj polecenia FAILED_PRECONDITION, jeśli klient nie powinien ponawiać próby, dopóki stan systemu nie zostanie bezpośrednio poprawiony. Jeśli na przykład błąd „rmdir” nie powiedzie się, ponieważ katalog nie jest pusty, należy zwrócić FAILED_PRECONDITION, ponieważ klient nie powinien próbować ponownie, chyba że pliki zostaną usunięte z katalogu.

Mapowanie HTTP: błąd 400

ABORTED

Operacja została przerwana, zwykle z powodu problemu równoczesności, np. w wyniku kontroli sekwencera lub przerwania transakcji.

Powyższe wytyczne ułatwią Ci wybór pomiędzy FAILED_PRECONDITION, ABORTED i UNAVAILABLE.

Mapowanie HTTP: konflikt 409

OUT_OF_RANGE

Podjęto próbę wykonania operacji poza prawidłowym zakresem. Przykładem może być przeszukiwanie na końcu pliku lub odczyt go.

W przeciwieństwie do INVALID_ARGUMENT ten błąd wskazuje problem, który można rozwiązać, jeśli zmieni się stan systemu. Na przykład 32-bitowy system plików wygeneruje INVALID_ARGUMENT, jeśli zostanie wyświetlony komunikat o przesunięciu nieuwzględnionym w zakresie [0,2^32-1], ale o liczbie OUT_OF_RANGE.

W pewnym stopniu pokrywają się między FAILED_PRECONDITION a OUT_OF_RANGE. Zalecamy stosowanie OUT_OF_RANGE (bardziej konkretnego błędu) podczas jego stosowania, aby osoby dzwoniące podczas powtarzania pokoju mogły z łatwością wyszukiwać błąd OUT_OF_RANGE i ustalać, kiedy niego nie ma.

Mapowanie HTTP: błąd 400

UNIMPLEMENTED

Operacja nie została zaimplementowana w usłudze lub nie jest obsługiwana.

Mapowanie HTTP: błąd 501 nie został zaimplementowany

INTERNAL

Błędy wewnętrzne. Oznacza to, że pewne niezmienniki oczekiwane przez system bazowy zostały uszkodzone. Ten kod błędu jest zarezerwowany dla poważnych błędów.

Mapowanie HTTP: wewnętrzny błąd serwera 500

UNAVAILABLE

Usługa jest obecnie niedostępna. Jest to najczęściej stan przejściowy, który można rozwiązać, ponawiając próbę. Pamiętaj, że nie zawsze można ponawiać próby niezwiązane z identyfikacją.

Powyższe wytyczne ułatwią Ci wybór pomiędzy FAILED_PRECONDITION, ABORTED i UNAVAILABLE.

Mapowanie HTTP: usługa 503 niedostępna

DATA_LOSS

Nieodwracalna utrata danych lub uszkodzenie.

Mapowanie HTTP: wewnętrzny błąd serwera 500

Polecenie po ukośniku

polecenie po ukośniku w Google Chat,

Zapis JSON
{
  "commandId": string
}
Pola
commandId

string (int64 format)

Identyfikator wywołanego polecenia po ukośniku.

Dopasowany URL

Dopasowany adres URL w wiadomości na czacie. Aplikacje do obsługi czatu mogą mieć podgląd pasujących adresów URL. Więcej informacji znajdziesz w artykule Podgląd linków.

Zapis JSON
{
  "url": string
}
Pola
url

string

Tylko dane wyjściowe. Dopasowany adres URL.

Podsumowanie reakcji na emotikony

Liczba osób, które zareagowały na wiadomość z określonym emotikonem.

Zapis JSON
{
  "emoji": {
    object (Emoji)
  },
  "reactionCount": integer
}
Pola
emoji

object (Emoji)

Emotikony powiązane z reakcjami.

reactionCount

integer

Łączna liczba reakcji przy użyciu powiązanych emotikonów.

Metadane usuwania

Informacje o usuniętej wiadomości. Gdy ustawisz deleteTime, wiadomość zostanie usunięta.

Zapis JSON
{
  "deletionType": enum (DeletionType)
}
Pola
deletionType

enum (DeletionType)

Wskazuje, kto usunął wiadomość.

Typ usunięcia

kto usunął wiadomość i jak została ona usunięta,

Wartości w polu enum
DELETION_TYPE_UNSPECIFIED Ta wartość nie jest używana.
CREATOR Użytkownik usunął własną wiadomość.
SPACE_OWNER Właściciel pokoju usunął wiadomość.
ADMIN Administrator Google Workspace usunął wiadomość.
APP_MESSAGE_EXPIRY Aplikacja Google Chat usunęła własną wiadomość, gdy wygasła.
CREATOR_VIA_APP Aplikacja Google Chat usunąła wiadomość w imieniu użytkownika.
SPACE_OWNER_VIA_APP Aplikacja Google Chat usunął wiadomość w imieniu właściciela pokoju.

Metody

create

Tworzy wiadomość.

delete

Usunięcie wiadomości.

get

Zwraca szczegóły wiadomości.

list

Wyświetla wiadomości w pokoju, do którego należy rozmówca, w tym wiadomości od zablokowanych użytkowników i pokoi.

patch

Aktualizuje wiadomość.

update

Aktualizuje wiadomość.