REST Resource: spaces.messages

資源:Message

Google Chat 聊天室中的訊息。

JSON 表示法
{
  "name": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "lastUpdateTime": string,
  "deleteTime": string,
  "text": string,
  "formattedText": 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)
  },
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  },
  "attachedGifs": [
    {
      object (AttachedGif)
    }
  ]
}
欄位
name

string

格式為 spaces/*/messages/* 的資源名稱。

範例:spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB

sender

object (User)

僅供輸出。建立訊息的使用者。如果您的 Chat 應用程式以使用者的身分進行驗證,輸出內容會填入 使用者 nametype

createTime

string (Timestamp format)

在 Chat 中建立的聊天室是指建立訊息的時間。除非在匯入的聊天室中使用,否則這個欄位只會輸出。

如果是匯入的聊天室,請將這個欄位設為訊息在來源中建立的歷來時間戳記,以便保留原始的建立時間。

lastUpdateTime

string (Timestamp format)

僅供輸出。使用者上次編輯訊息的時間。如果訊息尚未編輯,這個欄位會留空。

deleteTime

string (Timestamp format)

僅供輸出。訊息在 Google Chat 中刪除的時間。如果系統從未刪除郵件,這個欄位會留空。

text

string

訊息的純文字內文。第一個圖片、影片或網頁的連結會產生預覽方塊。你也可以使用@號提及 Google Chat 使用者,或聊天室中的所有使用者。

如要瞭解如何建立簡訊,請參閱「傳送簡訊」。

formattedText

string

僅供輸出。包含 text 訊息和為溝通格式新增的標記。這個欄位可能無法擷取 UI 中顯示的所有格式,但會加入以下內容:

  • 粗體、斜體、刪除線、等寬和等寬區塊的標記語法
  • 使用者提及,格式為 <users/{user}>
  • 採用 <{url}|{rendered_text}> 格式的自訂超連結,其中第一個字串是網址,第二個字串是轉譯的文字,例如 <http://example.com|custom text>
  • 使用 :{emoji_name}: 格式的自訂表情符號,例如 :smile:。這不適用於萬國碼 (Unicode) 表情符號,例如 U+1F600 表示笑臉表情符號。

詳情請參閱「查看郵件中的文字格式」一文

cards[]
(deprecated)

object (Card)

已淘汰:請改用 cardsV2

內容豐富的、格式化和互動式資訊卡,可用來顯示 UI 元素,例如格式化的文字、按鈕和可點擊的圖片。資訊卡通常會顯示在純文字內文下方。cardscardsV2 的大小上限為 32 KB。

cardsV2[]

object (CardWithId)

資訊卡陣列。

只有 Chat 專用應用程式才能建立資訊卡。如果您的 Chat 應用程式是以使用者身分進行驗證,該訊息就無法包含卡片。

如要瞭解資訊卡及其建立方式,請參閱「使用資訊卡設計動態、互動且一致的 UI」。

annotations[]

object (Annotation)

僅供輸出。與這則訊息中的 text 相關聯的註解。

thread

object (Thread)

訊息所屬的會話串。如需使用方式範例,請參閱「建立或回覆訊息串」。

space

object (Space)

如果 Chat 應用程式以使用者身分進行驗證,輸出內容會填入聊天室 name

fallbackText

string

訊息卡片的純文字說明,當無法顯示實際資訊卡時 (例如行動裝置通知) 就會使用這種說明。

actionResponse

object (ActionResponse)

僅限輸入。Chat 應用程式可使用的參數來設定回應的張貼方式。

argumentText

string

僅供輸出。訊息的純文字內文,所有提及 Chat 應用程式的內容皆已移除。

slashCommand

object (SlashCommand)

僅供輸出。斜線指令資訊 (如適用)。

attachment[]

object (Attachment)

使用者上傳的附件。

matchedUrl

object (MatchedUrl)

僅供輸出。spaces.messages.text 中的網址與連結預覽模式相符。詳情請參閱「預覽連結」一節。

threadReply

boolean

僅供輸出。如果設為 true,訊息是回覆討論串中的回覆。設為 false 時,訊息會在聊天室頂層對話中顯示為討論串的第一則訊息,或是沒有討論串回覆的訊息。

如果聊天室不支援討論串中的回覆,這個欄位一律為 false

clientAssignedMessageId

string

建立 Chat 訊息時指派的自訂名稱。開頭須為「client-」,而且只能使用小寫英文字母、數字和連字號,長度上限為 63 個字元。指定這個欄位,以便取得、更新或刪除含有指定值的訊息。指派自訂名稱可讓 Chat 應用程式回收訊息,但不會儲存建立訊息時傳回的回應主體中的訊息 name。指派自訂名稱並不會取代系統產生的 name 欄位,也就是訊息的資源名稱。而是將自訂名稱設為 clientAssignedMessageId 欄位,供您在後續處理 (例如更新或刪除訊息) 時參照。如需使用方式範例,請參閱「為已建立的訊息命名」。

emojiReactionSummaries[]

object (EmojiReactionSummary)

僅供輸出。訊息中的表情符號回應摘要清單。

deletionMetadata

object (DeletionMetadata)

僅供輸出。已刪除訊息的相關資訊。系統會在設定 deleteTime 時刪除訊息。

quotedMessageMetadata

object (QuotedMessageMetadata)

僅供輸出。Google Chat 使用者在聊天室中引用的訊息相關資訊。Google Chat 使用者可以引用訊息來回覆訊息。

attachedGifs[]

object (AttachedGif)

僅供輸出。訊息附加的 GIF 圖片。

CardWith ID

Google Chat 訊息中的資訊卡

只有 Chat 專用應用程式才能建立資訊卡。如果您的 Chat 應用程式是以使用者身分進行驗證,該訊息就無法包含卡片。

JSON 表示法
{
  "cardId": string,
  "card": {
    object (Card)
  }
}
欄位
cardId

string

如果訊息含有多張資訊卡,此為必填屬性。訊息中卡片的專屬 ID。

card

object (Card)

資訊卡。大小上限為 32 KB。

註解

僅供輸出。與訊息純文字內文相關聯的註解。如要為簡訊加入基本格式設定,請參閱設定簡訊格式

純文字訊息內文範例:

Hello @FooBot how are you!"

對應的註解中繼資料:

"annotations":[{
  "type":"USER_MENTION",
  "startIndex":6,
  "length":7,
  "userMention": {
    "user": {
      "name":"users/{user}",
      "displayName":"FooBot",
      "avatarUrl":"https://goo.gl/aeDtrS",
      "type":"BOT"
    },
    "type":"MENTION"
   }
}]
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.
}
欄位
type

enum (AnnotationType)

此註解的類型。

length

integer

這個註解所對應純文字訊息內文中的子字串長度。

startIndex

integer

這個註解所對應之純文字訊息內文中的起始索引 (從 0 開始,含首尾)。

聯集欄位 metadata。註解的其他中繼資料。metadata 只能是下列其中一項:
userMention

object (UserMentionMetadata)

使用者提及的中繼資料。

slashCommand

object (SlashCommandMetadata)

斜線指令的中繼資料。

AnnotationType

註解類型。

列舉
ANNOTATION_TYPE_UNSPECIFIED 列舉的預設值。請勿使用此屬性。
USER_MENTION 提及使用者。
SLASH_COMMAND 叫用斜線指令。

UserMentionMetadata

讓使用者提及 (@) 的註解中繼資料。

JSON 表示法
{
  "user": {
    object (User)
  },
  "type": enum (Type)
}
欄位
user

object (User)

提及的使用者。

type

enum (Type)

使用者提及的類型。

類型

列舉
TYPE_UNSPECIFIED 列舉的預設值。請勿使用此屬性。
ADD 將使用者新增至聊天室。
MENTION 在聊天室中提及使用者。

SlashCommandMetadata

斜線指令 (/) 的註解中繼資料。

JSON 表示法
{
  "bot": {
    object (User)
  },
  "type": enum (Type),
  "commandName": string,
  "commandId": string,
  "triggersDialog": boolean
}
欄位
bot

object (User)

Chat 應用程式受到叫用指令。

type

enum (Type)

斜線指令的類型。

commandName

string

所叫用斜線指令的名稱。

commandId

string (int64 format)

所叫用斜線指令的指令 ID。

triggersDialog

boolean

指出斜線指令是否適用於對話方塊。

類型

列舉
TYPE_UNSPECIFIED 列舉的預設值。請勿使用此屬性。
ADD 將 Chat 應用程式新增至聊天室。
INVOKE 在聊天室中叫用斜線指令。

討論串

Google Chat 聊天室中的討論串。如需使用方式範例,請參閱「建立或回覆訊息串」。

如果您在建立訊息時指定執行緒,可以設定 messageReplyOption 欄位,藉此在找不到相符的執行緒時的處理方式。

JSON 表示法
{
  "name": string,
  "threadKey": string
}
欄位
name

string

僅供輸出。執行緒的資源名稱。

範例:spaces/{space}/threads/{thread}

threadKey

string

(選填) 建立或更新執行緒的輸入內容。否則,系統只會輸出輸出的內容。執行緒 ID。長度上限為 4,000 個半形字元。

這個 ID 是設定此 ID 的 Chat 應用程式的專屬 ID。舉例來說,如有多個 Chat 應用程式使用相同的執行緒鍵建立訊息,則這些訊息會發布至不同的討論串。如要在使用者或其他 Chat 應用程式建立的討論串中回覆訊息,請改為指定討論串 name 欄位。

動作回應

Chat 應用程式可使用的參數來設定回應的張貼方式。

JSON 表示法
{
  "type": enum (ResponseType),
  "url": string,
  "dialogAction": {
    object (DialogAction)
  }
}
欄位
type

enum (ResponseType)

僅限輸入。Chat 應用程式回應類型。

url

string

僅限輸入。使用者驗證或設定的網址。(僅適用於 REQUEST_CONFIG 回應類型)。

dialogAction

object (DialogAction)

僅限輸入。對對話方塊相關事件的回應。必須與 ResponseType.Dialog 一併顯示。

回應類型

Chat 應用程式回應類型。

列舉
TYPE_UNSPECIFIED 視為 NEW_MESSAGE 的預設類型。
NEW_MESSAGE 張貼為主題中的新訊息。
UPDATE_MESSAGE 更新 Chat 應用程式的訊息。只有在郵件寄件者類型為 BOTCARD_CLICKED 事件中,才有可能採取這種做法。
UPDATE_USER_MESSAGE_CARDS 更新使用者訊息中的資訊卡。只有在回應網址相符的 MESSAGE 事件或訊息寄件者類型為 HUMANCARD_CLICKED 事件時,您才能回應此方法。系統會忽略文字。
REQUEST_CONFIG 私下要求使用者進行其他驗證或設定。
DIALOG 顯示對話方塊

DialogAction

包含對話方塊和要求狀態碼。

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.
}
欄位
actionStatus

object (ActionStatus)

僅限輸入。叫用或提交對話方塊的要求狀態。視需要向使用者顯示狀態和訊息。例如發生錯誤或成功時。

聯集欄位 action

action 只能採用下列其中一種設定:

dialog

object (Dialog)

僅限輸入。要求的對話方塊

對話方塊

對話方塊卡片內文周圍的包裝函式。

JSON 表示法
{
  "body": {
    object (Card)
  }
}
欄位
body

object (Card)

僅限輸入。以強制回應顯示的對話方塊內文。Google Chat 應用程式不支援下列卡片實體:DateTimePickerOnChangeAction

動作狀態

代表要求叫用或提交對話方塊的狀態。

JSON 表示法
{
  "statusCode": enum (Code),
  "userFacingMessage": string
}
欄位
statusCode

enum (Code)

狀態碼。

userFacingMessage

string

這是指要向使用者傳送要求狀態相關訊息的訊息。如未設定,系統會傳送根據 statusCode 的一般訊息。

程式碼

gRPC API 的標準錯誤代碼。

有時可能適用多個錯誤代碼。服務應傳回最適用的特定錯誤代碼。例如,如果 OUT_OF_RANGEFAILED_PRECONDITION 代碼都適用,則最好使用前者。同樣的,NOT_FOUNDALREADY_EXISTS 的優先程度也高於 FAILED_PRECONDITION

列舉
OK

非錯誤;於成功時傳回。

HTTP 對應:200 OK

CANCELLED

作業已取消,一般由呼叫者取消。

HTTP 對應:499 用戶端已關閉要求

UNKNOWN

不明的錯誤。舉例來說,如果從其他位址空間收到的 Status 值屬於這個位址空間中不明的錯誤空間,系統可能會傳回這個錯誤。由 API 發出但未傳回充分錯誤資訊的錯誤,也可能會轉換為此錯誤。

HTTP 對應:500 內部伺服器錯誤

INVALID_ARGUMENT

用戶端指定了無效的引數。請注意,這與 FAILED_PRECONDITION 不同。INVALID_ARGUMENT 表示無論系統狀態為何,皆有問題的引數 (例如格式錯誤的檔案名稱)。

HTTP 對應:400 錯誤的要求

DEADLINE_EXCEEDED

期限於作業完成之前過期。針對變更系統狀態的作業,即使作業已成功完成,也可能傳回此錯誤。例如,來自伺服器的成功回應延遲時間可能已長到足以使期限過期。

HTTP 對應:504 閘道逾時

NOT_FOUND

找不到某些要求的實體 (例如檔案或目錄)。

伺服器開發人員請注意:如果針對整個類別的使用者拒絕要求,例如逐步推出功能或未記錄的許可清單,可以使用 NOT_FOUND。如果針對某一使用者類別中的某些使用者拒絕要求,例如以使用者為基礎的存取權控管,則必須使用 PERMISSION_DENIED

HTTP 對應:404 找不到

ALREADY_EXISTS

用戶端嘗試建立的實體 (例如檔案或目錄) 已存在。

HTTP 對應:409 衝突

PERMISSION_DENIED

呼叫者沒有執行指定作業的權限。對於因耗用某些資源所導致的拒絕情形,不得使用 PERMISSION_DENIED (請針對這些錯誤改用 RESOURCE_EXHAUSTED)。如果無法識別呼叫者,不得使用 PERMISSION_DENIED (請針對這些錯誤改用 UNAUTHENTICATED)。此錯誤代碼並不表示要求有效,或是要求的實體已存在或是滿足其他先決條件。

HTTP 對應:403 禁止

UNAUTHENTICATED

要求沒有作業的有效驗證憑證。

HTTP 對應:401 未授權

RESOURCE_EXHAUSTED

已耗盡某些資源,或許是每位使用者的配額,或許是完整檔案系統空間不足。

HTTP 對應:429 太多要求

FAILED_PRECONDITION

作業已遭拒絕,因為系統不在執行作業所需的狀態下。例如要刪除的目錄非空白、rmdir 作業套用至非目錄等。

服務實作者可根據以下指南,決定 FAILED_PRECONDITIONABORTEDUNAVAILABLE:(a) 如果用戶端只能重試失敗的呼叫,請使用 UNAVAILABLE。(b) 如果用戶端應在更高層級重試,請使用 ABORTED。例如,當用戶端指定的「test-and-set」失敗時,表示用戶端應重新啟動「讀取 - 修改 - 寫入」序列。(c) 如果用戶端在系統狀態明確修正之前,不應重試,請使用 FAILED_PRECONDITION。舉例來說,如果「rmdir」因目錄不是空白而失敗,則應傳回 FAILED_PRECONDITION,因為除非檔案已從目錄中刪除,否則用戶端不應重試。

HTTP 對應:400 錯誤的要求

ABORTED

作業已取消,原因通常是排序器檢查失敗或交易取消等並行問題。

如要決定採用 FAILED_PRECONDITIONABORTED 還是 UNAVAILABLE,請參閱以上指南。

HTTP 對應:409 衝突

OUT_OF_RANGE

嘗試作業時超過有效範圍,例如搜尋或讀取超過檔案結尾。

INVALID_ARGUMENT 不同,此錯誤表示如果系統狀態變更則可修正的問題。例如,如果要求在不在 [0,2^32-1] 範圍的位移上讀取,32 位元檔案系統會產生 INVALID_ARGUMENT,但如果要求從超過目前檔案大小的偏移量讀取,32 位元檔案系統會產生 OUT_OF_RANGE

FAILED_PRECONDITIONOUT_OF_RANGE 之間有點重疊。我們建議您在適用情況下使用 OUT_OF_RANGE (更具體的錯誤),這樣在空間進行疊代作業的呼叫端可以輕鬆尋找 OUT_OF_RANGE 錯誤,並在完成後加以偵測。

HTTP 對應:400 錯誤的要求

UNIMPLEMENTED

未實作作業或作業在此服務中不受支援/未啟用。

HTTP 對應:501 未實作

INTERNAL

內部錯誤。這表示基礎系統預期的某些不變的情形已被打破。此錯誤代碼保留供嚴重錯誤使用。

HTTP 對應:500 內部伺服器錯誤

UNAVAILABLE

服務目前無法使用。這極有可能是暫時情況,可透過重試輪詢來解決。請注意,重試非冪等作業並不一定安全。

如要決定採用 FAILED_PRECONDITIONABORTED 還是 UNAVAILABLE,請參閱以上指南。

HTTP 對應:503 服務不可用

DATA_LOSS

無法復原的資料遺失或損毀。

HTTP 對應:500 內部伺服器錯誤

斜線指令

Google Chat 中的斜線指令

JSON 表示法
{
  "commandId": string
}
欄位
commandId

string (int64 format)

叫用的斜線指令 ID。

相符網址

Chat 訊息中相符的網址。即時通訊應用程式可以預覽相符的網址。詳情請參閱「預覽連結」。

JSON 表示法
{
  "url": string
}
欄位
url

string

僅供輸出。相符的網址。

表情符號回應摘要

使用特定表情符號回應訊息的使用者人數。

JSON 表示法
{
  "emoji": {
    object (Emoji)
  },
  "reactionCount": integer
}
欄位
emoji

object (Emoji)

與回應相關聯的表情符號。

reactionCount

integer

使用相關聯表情符號的回應總數。

刪除中繼資料

已刪除訊息的相關資訊。系統會在設定 deleteTime 時刪除訊息。

JSON 表示法
{
  "deletionType": enum (DeletionType)
}
欄位
deletionType

enum (DeletionType)

顯示誰刪除了訊息。

刪除類型

誰刪除了郵件,以及郵件遭到刪除的方式。

列舉
DELETION_TYPE_UNSPECIFIED 這個值未使用。
CREATOR 使用者已刪除自己的訊息。
SPACE_OWNER 聊天室擁有者已刪除訊息。
ADMIN Google Workspace 管理員已刪除訊息。
APP_MESSAGE_EXPIRY Chat 應用程式會在過期後自行刪除訊息。
CREATOR_VIA_APP Chat 應用程式代表使用者刪除訊息。
SPACE_OWNER_VIA_APP Chat 應用程式已代表聊天室擁有者刪除訊息。

quotedMessageMetadata

引用訊息的相關資訊。

JSON 表示法
{
  "name": string,
  "lastUpdateTime": string
}
欄位
name

string

僅供輸出。引用訊息的資源名稱。

格式︰spaces/{space}/messages/{message}

lastUpdateTime

string (Timestamp format)

僅供輸出。引用訊息的建立時間,或引用訊息上次更新的時間。

附加的 GIF

網址指定的 GIF 圖片。

JSON 表示法
{
  "uri": string
}
欄位
uri

string

僅供輸出。代管 GIF 圖片的網址。

方法

create

在 Google Chat 聊天室中建立訊息。

delete

刪除訊息。

get

傳回訊息的詳細資料。

list

列出來電者所屬聊天室中的訊息,包括封鎖成員和聊天室的訊息。

patch

更新訊息。

update

更新訊息。