Method: triggers.fire

通知 Google 發生觸發事件。

HTTP 要求

POST https://workspacestudio.googleapis.com/v1/{name=triggers/*}:fire

這個網址使用 gRPC 轉碼語法。

路徑參數

參數
name

string

必填。觸發條件的資源名稱。格式:triggers/{trigger_id}

要求主體

要求主體會包含結構如下的資料:

JSON 表示法
{
  "outputs": {
    string: {
      object (VariableData)
    },
    ...
  },
  "log": {
    object (TextFormat)
  },
  "requestId": string
}
欄位
outputs

map (key: string, value: object (VariableData))

(選用步驟) 第三方應用程式中觸發事件的輸出變數。

這個物件中包含 "key": value 組合的清單,範例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

log

object (TextFormat)

(選用步驟) (選填) 觸發事件的記錄,可供使用者查看。

requestId

string

(選用步驟) 這項要求的專屬 ID。最多 36 個 ASCII 字元。建議使用隨機 UUID。只有在提供 requestId 時,這項要求才會是等冪。

回應主體

如果成功,回應主體會留白。

授權範圍

需要下列 OAuth 範圍:

  • https://www.googleapis.com/auth/workspace.studio.trigger

詳情請參閱授權指南

VariableData

代表變數資料,可保留不同類型的多個值。

JSON 表示法
{
  "booleanValues": [
    boolean
  ],
  "integerValues": [
    string
  ],
  "stringValues": [
    string
  ],
  "timestampValues": [
    string
  ],
  "resourceReferences": [
    string
  ],
  "resourceDataValues": [
    {
      object (ResourceData)
    }
  ],
  "emailAddressValues": [
    string
  ],
  "users": [
    string
  ]
}
欄位
booleanValues[]

boolean

布林值。

integerValues[]

string (int64 format)

整數值。

stringValues[]

string

字串值。

timestampValues[]

string (Timestamp format)

時間戳記值。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

resourceReferences[]

string

資源 ID 清單 (例如「spaces/123」)。

resourceDataValues[]

object (ResourceData)

資源資料清單。

emailAddressValues[]

string

電子郵件地址值。

users[]

string

Google 使用者值,格式為 users/{user}

ResourceData

應用程式專屬資源值。

JSON 表示法
{
  "fields": {
    string: {
      object (VariableData)
    },
    ...
  }
}
欄位
fields

map (key: string, value: object (VariableData))

資源欄位的對應,索引鍵為欄位名稱。

這個物件中包含 "key": value 組合的清單,範例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

TextFormat

一段文字,提供豐富的格式設定選項,包括樣式、超連結和互動式元素。

JSON 表示法
{
  "textFormatElements": [
    {
      object (TextFormatElement)
    }
  ]
}
欄位
textFormatElements[]

object (TextFormatElement)

(選用步驟) 文字格式元素集合。

TextFormatElement

WorkflowTextFormatMarkup 訊息中的單一元素,可以是動態磚、樣式文字、超連結或清單容器。

JSON 表示法
{

  "text": string,
  "chip": {
    object (Chip)
  },
  "styledText": {
    object (StyledText)
  },
  "hyperlink": {
    object (Hyperlink)
  },
  "listContainer": {
    object (ListContainer)
  }
}
欄位
聯集欄位 element。此元素代表多種可能的文字格式元素之一。element 只能是下列其中一項:
text

string

文字格式的文字。

chip

object (Chip)

文字格式中的可點選動態磚。

styledText

object (StyledText)

文字格式的樣式文字。

listContainer

object (ListContainer)

以文字格式列出容器。

方塊

文字格式的可點選動態磚。

JSON 表示法
{
  "icon": {
    object (Icon)
  },
  "label": string,
  "url": string
}
欄位
icon

object (Icon)

(選用步驟) 方塊中顯示的圖示。

label

string

(選用步驟) 方塊中顯示的文字。

url

string

(選用步驟) 點按智慧型方塊時前往的網址。

圖示

方塊中的圖示。

JSON 表示法
{

  "iconUrl": string,
  "materialIcon": string
}
欄位
聯集欄位 icons。方塊中顯示的圖示。icons 只能是下列其中一項:
iconUrl

string

顯示 HTTPS 網址代管的自訂圖示。

例如:

"iconUrl":
"https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png"

支援的檔案類型包括 .png.jpg

materialIcon

string

Google Material 圖示中定義的圖示名稱,例如 check_box。系統會捨棄所有無效名稱,並替換成空字串,導致圖示無法顯示。

StyledText

文字元素,可設定粗體、斜體和顏色等樣式。

JSON 表示法
{
  "text": string,
  "styles": [
    enum (Style)
  ],
  "fontWeight": enum (FontWeight),
  "color": {
    object (Color)
  },
  "wrapStyle": enum (WrapStyle)
}
欄位
text

string

(選用步驟) 文字的主要內容。

styles[]

enum (Style)

(選用步驟) 套用至文字的樣式集合。

fontWeight

enum (FontWeight)

(選用步驟) 文字的字型粗細。

color

object (Color)

(選用步驟) 文字的顏色。

wrapStyle

enum (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

number

顏色中的紅色量,值介於 [0, 1] 之間。

green

number

顏色中的綠色量,值介於 [0, 1] 之間。

blue

number

顏色中的藍色量,值介於 [0, 1] 之間。

alpha

number

應套用至像素的顏色比例。也就是說,最終像素顏色是由下列方程式定義:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

也就是說,值為 1.0 時代表實心顏色,值為 0.0 時則代表完全透明的顏色。這會使用封裝函式訊息,而非簡單的浮點純量,因此可以區分預設值和未設定的值。如果省略,這個顏色物件會以實心顏色算繪 (如同 Alpha 值已明確設為 1.0)。

WrapStyle

不同換行樣式的列舉。

列舉
WRAP_STYLE_UNSPECIFIED 未指定換行樣式。
NO_WRAP 沒有換行樣式。

ListContainer

清單項目的容器,每個清單項目可包含多個 TextFormatElement。

JSON 表示法
{
  "listNestLevel": string,
  "listType": enum (ListType),
  "listItems": [
    {
      object (ListItem)
    }
  ]
}
欄位
listNestLevel

string (int64 format)

(選用步驟) 清單的巢狀層級。頂層從 0 開始,每個巢狀清單會增加 1。

listType

enum (ListType)

(選用步驟) 清單類型。

listItems[]

object (ListItem)

(選用步驟) 清單項目的集合。

ListType

不同清單類型的列舉。

列舉
LIST_TYPE_UNSPECIFIED 未指定清單類型。
ORDERED 已排序的清單。
UNORDERED 未排序的清單。

ListItem

清單項目。

JSON 表示法
{
  "textFormatElements": [
    {
      object (TextFormatElement)
    }
  ]
}
欄位
textFormatElements[]

object (TextFormatElement)

(選用步驟) 文字格式元素集合。