- HTTP 要求
- 路徑參數
- 要求主體
- 回應主體
- 授權範圍
- VariableData
- ResourceData
- TextFormat
- TextFormatElement
- 晶片
- 圖示
- StyledText
- 樣式
- FontWeight
- 顏色
- WrapStyle
- Hyperlink
- ListContainer
- ListType
- ListItem
- 試試看!
通知 Google 發生觸發事件。
HTTP 要求
POST https://workspacestudio.googleapis.com/v1/{name=triggers/*}:fire
這個網址使用 gRPC 轉碼語法。
路徑參數
| 參數 | |
|---|---|
name |
必填。觸發條件的資源名稱。格式:triggers/{trigger_id} |
要求主體
要求主體會包含結構如下的資料:
| JSON 表示法 |
|---|
{ "outputs": { string: { object ( |
| 欄位 | |
|---|---|
outputs |
(選用步驟) 第三方應用程式中觸發事件的輸出變數。 這個物件中包含 |
log |
(選用步驟) (選填) 觸發事件的記錄,可供使用者查看。 |
requestId |
(選用步驟) 這項要求的專屬 ID。最多 36 個 ASCII 字元。建議使用隨機 UUID。只有在提供 |
回應主體
如果成功,回應主體會留白。
授權範圍
需要下列 OAuth 範圍:
https://www.googleapis.com/auth/workspace.studio.trigger
詳情請參閱授權指南。
VariableData
代表變數資料,可保留不同類型的多個值。
| JSON 表示法 |
|---|
{
"booleanValues": [
boolean
],
"integerValues": [
string
],
"stringValues": [
string
],
"timestampValues": [
string
],
"resourceReferences": [
string
],
"resourceDataValues": [
{
object ( |
| 欄位 | |
|---|---|
booleanValues[] |
布林值。 |
integerValues[] |
整數值。 |
stringValues[] |
字串值。 |
timestampValues[] |
時間戳記值。 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
resourceReferences[] |
資源 ID 清單 (例如「spaces/123」)。 |
resourceDataValues[] |
資源資料清單。 |
emailAddressValues[] |
電子郵件地址值。 |
users[] |
Google 使用者值,格式為 |
ResourceData
應用程式專屬資源值。
| JSON 表示法 |
|---|
{
"fields": {
string: {
object ( |
| 欄位 | |
|---|---|
fields |
資源欄位的對應,索引鍵為欄位名稱。 這個物件中包含 |
TextFormat
一段文字,提供豐富的格式設定選項,包括樣式、超連結和互動式元素。
| JSON 表示法 |
|---|
{
"textFormatElements": [
{
object ( |
| 欄位 | |
|---|---|
textFormatElements[] |
(選用步驟) 文字格式元素集合。 |
TextFormatElement
WorkflowTextFormatMarkup 訊息中的單一元素,可以是動態磚、樣式文字、超連結或清單容器。
| JSON 表示法 |
|---|
{ "text": string, "chip": { object ( |
| 欄位 | |
|---|---|
聯集欄位 element。此元素代表多種可能的文字格式元素之一。element 只能是下列其中一項: |
|
text |
文字格式的文字。 |
chip |
文字格式中的可點選動態磚。 |
styledText |
文字格式的樣式文字。 |
hyperlink |
文字格式的超連結。 |
listContainer |
以文字格式列出容器。 |
方塊
文字格式的可點選動態磚。
| JSON 表示法 |
|---|
{
"icon": {
object ( |
| 欄位 | |
|---|---|
icon |
(選用步驟) 方塊中顯示的圖示。 |
label |
(選用步驟) 方塊中顯示的文字。 |
url |
(選用步驟) 點按智慧型方塊時前往的網址。 |
圖示
方塊中的圖示。
| JSON 表示法 |
|---|
{ "iconUrl": string, "materialIcon": string } |
| 欄位 | |
|---|---|
聯集欄位 icons。方塊中顯示的圖示。icons 只能是下列其中一項: |
|
iconUrl |
顯示 HTTPS 網址代管的自訂圖示。 例如: 支援的檔案類型包括 |
materialIcon |
Google Material 圖示中定義的圖示名稱,例如 |
StyledText
文字元素,可設定粗體、斜體和顏色等樣式。
| JSON 表示法 |
|---|
{ "text": string, "styles": [ enum ( |
| 欄位 | |
|---|---|
text |
(選用步驟) 文字的主要內容。 |
styles[] |
(選用步驟) 套用至文字的樣式集合。 |
fontWeight |
(選用步驟) 文字的字型粗細。 |
color |
(選用步驟) 文字的顏色。 |
wrapStyle |
(選用步驟) 文字的環繞樣式。 |
樣式
列舉不同文字樣式,例如斜體、底線等。
| 列舉 | |
|---|---|
STYLE_UNSPECIFIED |
未套用任何樣式。 |
ITALIC |
斜體樣式。 |
UNDERLINE |
底線樣式。 |
STRIKETHROUGH |
刪除線樣式。 |
LINE_BREAK |
換行。 |
UPPERCASE |
大寫樣式。 |
CODE |
Code. |
CODE_BLOCK |
程式碼區塊。 |
FontWeight
不同字型粗細的列舉。
| 列舉 | |
|---|---|
FONT_WEIGHT_UNSPECIFIED |
標準重量,厚度正常。 |
LIGHT |
更輕薄。 |
MEDIUM |
介於細體和粗體之間的重量。 |
BOLD |
重量較重,厚度較厚。 |
顏色
代表 RGBA 色域中的顏色。這個表示法旨在簡化各種語言中色彩表示法的轉換,而非追求緊湊。舉例來說,這個表示法的欄位可以輕鬆提供給 Java 中的 java.awt.Color 建構函式;也可以輕鬆提供給 iOS 中的 UIColor 的 +colorWithRed:green:blue:alpha 方法;只要稍加處理,就能輕鬆格式化為 JavaScript 中的 CSS rgba() 字串。
這個參考頁面沒有關於絕對色域的資訊,因此無法解讀 RGB 值,例如 sRGB、Adobe RGB、DCI-P3 和 BT.2020。應用程式預設應採用 sRGB 色域。
如要判斷顏色是否相等,除非另有說明,否則如果兩個顏色的紅色、綠色、藍色和 Alpha 值各自最多相差 1e-5,實作項目就會將這兩個顏色視為相等。
範例 (Java):
import com.google.type.Color;
// ...
public static java.awt.Color fromProto(Color protocolor) {
float alpha = protocolor.hasAlpha()
? protocolor.getAlpha().getValue()
: 1.0;
return new java.awt.Color(
protocolor.getRed(),
protocolor.getGreen(),
protocolor.getBlue(),
alpha);
}
public static Color toProto(java.awt.Color color) {
float red = (float) color.getRed();
float green = (float) color.getGreen();
float blue = (float) color.getBlue();
float denominator = 255.0;
Color.Builder resultBuilder =
Color
.newBuilder()
.setRed(red / denominator)
.setGreen(green / denominator)
.setBlue(blue / denominator);
int alpha = color.getAlpha();
if (alpha != 255) {
result.setAlpha(
FloatValue
.newBuilder()
.setValue(((float) alpha) / denominator)
.build());
}
return resultBuilder.build();
}
// ...
範例 (iOS / Obj-C):
// ...
static UIColor* fromProto(Color* protocolor) {
float red = [protocolor red];
float green = [protocolor green];
float blue = [protocolor blue];
FloatValue* alpha_wrapper = [protocolor alpha];
float alpha = 1.0;
if (alpha_wrapper != nil) {
alpha = [alpha_wrapper value];
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
static Color* toProto(UIColor* color) {
CGFloat red, green, blue, alpha;
if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
return nil;
}
Color* result = [[Color alloc] init];
[result setRed:red];
[result setGreen:green];
[result setBlue:blue];
if (alpha <= 0.9999) {
[result setAlpha:floatWrapperWithValue(alpha)];
}
[result autorelease];
return result;
}
// ...
範例 (JavaScript):
// ...
var protoToCssColor = function(rgb_color) {
var redFrac = rgb_color.red || 0.0;
var greenFrac = rgb_color.green || 0.0;
var blueFrac = rgb_color.blue || 0.0;
var red = Math.floor(redFrac * 255);
var green = Math.floor(greenFrac * 255);
var blue = Math.floor(blueFrac * 255);
if (!('alpha' in rgb_color)) {
return rgbToCssColor(red, green, blue);
}
var alphaFrac = rgb_color.alpha.value || 0.0;
var rgbParams = [red, green, blue].join(',');
return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};
var rgbToCssColor = function(red, green, blue) {
var rgbNumber = new Number((red << 16) | (green << 8) | blue);
var hexString = rgbNumber.toString(16);
var missingZeros = 6 - hexString.length;
var resultBuilder = ['#'];
for (var i = 0; i < missingZeros; i++) {
resultBuilder.push('0');
}
resultBuilder.push(hexString);
return resultBuilder.join('');
};
// ...
| JSON 表示法 |
|---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
| 欄位 | |
|---|---|
red |
顏色中的紅色量,值介於 [0, 1] 之間。 |
green |
顏色中的綠色量,值介於 [0, 1] 之間。 |
blue |
顏色中的藍色量,值介於 [0, 1] 之間。 |
alpha |
應套用至像素的顏色比例。也就是說,最終像素顏色是由下列方程式定義:
也就是說,值為 1.0 時代表實心顏色,值為 0.0 時則代表完全透明的顏色。這會使用封裝函式訊息,而非簡單的浮點純量,因此可以區分預設值和未設定的值。如果省略,這個顏色物件會以實心顏色算繪 (如同 Alpha 值已明確設為 1.0)。 |
WrapStyle
不同換行樣式的列舉。
| 列舉 | |
|---|---|
WRAP_STYLE_UNSPECIFIED |
未指定換行樣式。 |
NO_WRAP |
沒有換行樣式。 |
超連結
含有文字和連結的超連結元素。
| JSON 表示法 |
|---|
{ "link": string, "text": string } |
| 欄位 | |
|---|---|
link |
必填。超連結的到達網頁網址。 |
text |
必填。超連結文字。 |
ListContainer
清單項目的容器,每個清單項目可包含多個 TextFormatElement。
| JSON 表示法 |
|---|
{ "listNestLevel": string, "listType": enum ( |
| 欄位 | |
|---|---|
listNestLevel |
(選用步驟) 清單的巢狀層級。頂層從 0 開始,每個巢狀清單會增加 1。 |
listType |
(選用步驟) 清單類型。 |
listItems[] |
(選用步驟) 清單項目的集合。 |
ListType
不同清單類型的列舉。
| 列舉 | |
|---|---|
LIST_TYPE_UNSPECIFIED |
未指定清單類型。 |
ORDERED |
已排序的清單。 |
UNORDERED |
未排序的清單。 |
ListItem
清單項目。
| JSON 表示法 |
|---|
{
"textFormatElements": [
{
object ( |
| 欄位 | |
|---|---|
textFormatElements[] |
(選用步驟) 文字格式元素集合。 |