- درخواست HTTP
- پارامترهای مسیر
- درخواست بدنه
- بدنه پاسخ
- دامنههای مجوز
- دادههای متغیر
- منابع داده
- قالب متن
- عنصر قالب متن
- تراشه
- آیکون
- متن استایلدار
- سبک
- وزن فونت
- رنگ
- سبک بستهبندی
- هایپرلینک
- فهرست کانتینر
- نوع لیست
- آیتم لیست
- امتحانش کن!
به گوگل اطلاع میدهد که یک رویداد محرک رخ داده است.
درخواست HTTP
POST https://workspacestudio.googleapis.com/v1/{name=triggers/*}:fire
این URL از سینتکس Transcoding در gRPC استفاده میکند.
پارامترهای مسیر
| پارامترها | |
|---|---|
name | الزامی. نام منبع تریگر. فرمت: triggers/{trigger_id} |
درخواست بدنه
بدنه درخواست شامل دادههایی با ساختار زیر است:
| نمایش JSON |
|---|
{ "outputs": { string: { object ( |
| فیلدها | |
|---|---|
outputs | اختیاری. متغیرهای خروجی از رویداد تریگر در برنامه 3P. یک شیء شامل لیستی از جفتهای |
log | اختیاری. گزارش مواجهه کاربر برای رویداد محرک اختیاری است. |
requestId | اختیاری. یک شناسه منحصر به فرد برای این درخواست. محدود به ۳۶ کاراکتر ASCII. یک UUID تصادفی توصیه میشود. این درخواست فقط در صورتی خود-توان است که یک |
بدنه پاسخ
در صورت موفقیت، بدنه پاسخ خالی است.
دامنههای مجوز
به محدوده OAuth زیر نیاز دارد:
-
https://www.googleapis.com/auth/workspace.studio.trigger
برای اطلاعات بیشتر، به راهنمای مجوز مراجعه کنید.
دادههای متغیر
نشاندهنده دادههای متغیر است که میتوانند مقادیر متعددی از انواع مختلف را در خود نگه دارند.
| نمایش JSON |
|---|
{
"booleanValues": [
boolean
],
"integerValues": [
string
],
"stringValues": [
string
],
"timestampValues": [
string
],
"resourceReferences": [
string
],
"resourceDataValues": [
{
object ( |
| فیلدها | |
|---|---|
booleanValues[] | مقادیر بولی. |
integerValues[] | مقادیر عدد صحیح. |
stringValues[] | مقادیر رشتهای. |
timestampValues[] | مقادیر برچسب زمانی. از RFC 3339 استفاده میکند، که در آن خروجی تولید شده همیشه به صورت Z-normalized خواهد بود و از ارقام کسری ۰، ۳، ۶ یا ۹ استفاده میکند. آفستهای غیر از "Z" نیز پذیرفته میشوند. مثالها: |
resourceReferences[] | فهرستی از شناسههای منابع (مثلاً "spaces/123"). |
resourceDataValues[] | فهرستی از دادههای منابع. |
emailAddressValues[] | مقادیر آدرس ایمیل |
users[] | مقادیر کاربر گوگل در قالب |
منابع داده
مقدار منبع خاص برنامه.
| نمایش JSON |
|---|
{
"fields": {
string: {
object ( |
| فیلدها | |
|---|---|
fields | نقشهای از فیلدهای منابع که با نام فیلد کلیدگذاری شدهاند. یک شیء شامل لیستی از جفتهای |
قالب متن
بلوکی از متن با گزینههای قالببندی غنی شامل سبکها، هایپرلینکها و عناصر تعاملی.
| نمایش JSON |
|---|
{
"textFormatElements": [
{
object ( |
| فیلدها | |
|---|---|
textFormatElements[] | اختیاری. مجموعهای از عناصر قالببندی متن. |
عنصر قالب متن
یک عنصر واحد در یک پیام WorkflowTextFormatMarkup، که میتواند یک تراشه، متن استایلدار، یک هایپرلینک یا یک فهرست باشد.
| نمایش JSON |
|---|
{ "text": string, "chip": { object ( |
| فیلدها | |
|---|---|
element فیلد Union. عنصری که یکی از چندین عنصر قالببندی متن ممکن را نشان میدهد. element میتواند فقط یکی از موارد زیر باشد: | |
text | متن در قالب متن. |
chip | تراشه قابل کلیک در قالب متن. |
styledText | متن استایلدار در قالب متن. |
hyperlink | هایپرلینک در قالب متن. |
listContainer | فهرست کانتینر در قالب متن. |
تراشه
یک تراشه قابل کلیک در قالب متن.
| نمایش JSON |
|---|
{
"icon": {
object ( |
| فیلدها | |
|---|---|
icon | اختیاری. آیکون نمایش داده شده در تراشه. |
label | اختیاری. متنی که در تراشه نمایش داده میشود. |
url | اختیاری. آدرس اینترنتی (URL) که پس از کلیک روی تراشه به آن هدایت میشوید. |
آیکون
یک آیکون در تراشه.
| نمایش JSON |
|---|
{ "iconUrl": string, "materialIcon": string } |
| فیلدها | |
|---|---|
icons فیلد Union. آیکون نمایش داده شده در چیپ. icons میتوانند فقط یکی از موارد زیر باشند: | |
iconUrl | یک آیکون سفارشی که در یک URL HTTPS میزبانی میشود را نمایش دهید. برای مثال: انواع فایلهای پشتیبانیشده شامل |
materialIcon | نام آیکون تعریف شده در Google Material Icon ، برای مثال، |
متن استایلدار
عنصر متن با سبکهایی مانند پررنگ، کج و رنگی.
| نمایش JSON |
|---|
{ "text": string, "styles": [ enum ( |
| فیلدها | |
|---|---|
text | اختیاری. محتوای اصلی متن. |
styles[] | اختیاری. مجموعهای از سبکهای اعمالشده بر متن. |
fontWeight | اختیاری. وزن فونت متن. |
color | اختیاری. رنگ متن. |
wrapStyle | اختیاری. سبک پوشش متن. |
سبک
Enum برای سبکهای مختلف متن مانند ایتالیک، زیرخطدار و غیره
| انومها | |
|---|---|
STYLE_UNSPECIFIED | هیچ سبکی اعمال نشده است. |
ITALIC | سبک ایتالیک. |
UNDERLINE | سبک زیرخط دار. |
STRIKETHROUGH | سبک خط خورده. |
LINE_BREAK | خط شکنی. |
UPPERCASE | سبک حروف بزرگ. |
CODE | کد. |
CODE_BLOCK | بلوک کد. |
وزن فونت
Enum برای وزنهای مختلف فونت.
| انومها | |
|---|---|
FONT_WEIGHT_UNSPECIFIED | وزن استاندارد با ضخامت معمولی. |
LIGHT | وزن سبکتر با ضخامت کمتر. |
MEDIUM | وزن متوسطی بین روشن و پررنگ. |
BOLD | وزن سنگینتر با ضخامت بیشتر. |
رنگ
یک رنگ را در فضای رنگی RGBA نشان میدهد. این نمایش برای سادگی تبدیل به و از نمایشهای رنگ در زبانهای مختلف، به دلیل فشرده بودن، طراحی شده است. به عنوان مثال، فیلدهای این نمایش را میتوان به صورت بدیهی در اختیار سازندهی java.awt.Color در جاوا قرار داد؛ همچنین میتوان آن را به صورت بدیهی در اختیار متد +colorWithRed:green:blue:alpha در UIColor در iOS قرار داد؛ و با کمی کار، میتوان آن را به راحتی در یک رشتهی rgba() در CSS در جاوااسکریپت قالببندی کرد.
این صفحه مرجع اطلاعاتی در مورد فضای رنگی مطلق که باید برای تفسیر مقدار RGB استفاده شود - برای مثال، sRGB، Adobe RGB، DCI-P3 و BT.2020 - ندارد. به طور پیشفرض، برنامهها باید فضای رنگی sRGB را در نظر بگیرند.
وقتی نیاز به تصمیمگیری در مورد برابری رنگها باشد، پیادهسازیها، مگر اینکه خلاف آن مستند شده باشد، دو رنگ را در صورتی برابر در نظر میگیرند که تمام مقادیر قرمز، سبز، آبی و آلفای آنها حداکثر 1e-5 با هم تفاوت داشته باشند.
مثال (جاوا):
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;
}
// ...
مثال (جاوااسکریپت):
// ...
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 | کسری از این رنگ که باید به پیکسل اعمال شود. یعنی رنگ نهایی پیکسل با معادله زیر تعریف میشود: این بدان معناست که مقدار ۱.۰ مربوط به یک رنگ ثابت است، در حالی که مقدار ۰.۰ مربوط به یک رنگ کاملاً شفاف است. این روش به جای یک عدد اعشاری ساده، از یک پیام پوششی استفاده میکند تا بتوان بین مقدار پیشفرض و مقداری که تنظیم نشده است، تمایز قائل شد. در صورت حذف، این شیء رنگ به صورت یک رنگ ثابت رندر میشود (گویی به مقدار آلفا به صراحت مقدار ۱.۰ داده شده است). |
سبک بستهبندی
Enum برای سبکهای مختلف پوشش.
| انومها | |
|---|---|
WRAP_STYLE_UNSPECIFIED | هیچ سبک بستهبندی مشخص نشده است. |
NO_WRAP | بدون سبک بسته بندی. |
هایپرلینک
عنصر هایپرلینک با متن و لینک.
| نمایش JSON |
|---|
{ "link": string, "text": string } |
| فیلدها | |
|---|---|
link | الزامی. آدرس اینترنتی (URL) مقصدِ هایپرلینک. |
text | الزامی. متن هایپرلینک. |
فهرست کانتینر
ظرفی برای آیتمهای لیست، که در آن هر آیتم لیست میتواند شامل چندین TextFormatElement باشد.
| نمایش JSON |
|---|
{ "listNestLevel": string, "listType": enum ( |
| فیلدها | |
|---|---|
listNestLevel | اختیاری. سطح تودرتوی لیست. از ۰ برای سطح بالا شروع میشود و برای هر لیست تودرتو ۱ واحد افزایش مییابد. |
listType | اختیاری. نوع لیست. |
listItems[] | اختیاری. مجموعهای از آیتمهای لیست. |
نوع لیست
Enum برای انواع مختلف لیست.
| انومها | |
|---|---|
LIST_TYPE_UNSPECIFIED | نوع فهرست مشخص نشده است. |
ORDERED | لیست مرتب شده. |
UNORDERED | لیست نامرتب. |
آیتم لیست
یک مورد فهرست.
| نمایش JSON |
|---|
{
"textFormatElements": [
{
object ( |
| فیلدها | |
|---|---|
textFormatElements[] | اختیاری. مجموعهای از عناصر قالببندی متن. |