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

可选。相应请求的唯一标识符。仅限 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 规范化(即转换为 UTC 零时区格式并在末尾附加 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

格式为 users/{user} 的 Google 用户值。

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 消息中的单个元素,可以是 chip、样式化文本、超链接或列表容器。

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)

文本格式的列表容器。

条状标签

文本格式的可点击 chip。

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)

可选。文本格式元素的集合。