این صفحه نحوه تنظیم و پاسخ به دستورات به عنوان یک برنامه چت گوگل را توضیح میدهد.
دستورات به کاربران کمک میکنند تا ویژگیهای کلیدی یک برنامه چت را کشف و استفاده کنند. فقط برنامههای چت میتوانند محتوای یک دستور را ببینند. به عنوان مثال، اگر کاربری پیامی با دستور اسلش ارسال کند، آن پیام فقط برای کاربر و برنامه چت قابل مشاهده است.
برای تصمیمگیری در مورد اینکه آیا باید دستوراتی بسازید یا خیر، و برای درک نحوه طراحی تعاملات کاربر، به بخش «تعریف همه مسیرهای کاربر» مراجعه کنید.
انواع دستورات برنامه چت
شما میتوانید دستورات برنامه چت را به صورت دستورات اسلش، دستورات سریع یا اقدامات پیامرسان بسازید. برای استفاده از هر نوع دستور، کاربران میتوانند موارد زیر را انجام دهند:دستورات اسلش: کاربران میتوانند یک دستور اسلش را از منو انتخاب کنند یا یک اسلش (
/) و سپس یک متن از پیش تعریف شده، مانند/aboutتایپ کنند. برنامههای چت معمولاً برای دستور اسلش به متن آرگومان نیاز دارند.اگر برنامه چت شما به ورودی اضافی از کاربر نیاز دارد، یک دستور اسلش ایجاد کنید. برای مثال، میتوانید یک دستور اسلش به نام
/searchایجاد کنید که پس از وارد کردن عبارتی برای جستجو توسط کاربر، مانند/search receipts، اجرا شود.دستورات سریع: کاربران با باز کردن منو از قسمت پاسخ یک پیام چت، از دستورات استفاده میکنند. برای استفاده از یک دستور، روی افزودن کلیک میکنند.
و یک دستور را از منو انتخاب کنید.
اگر برنامه چت شما میتواند بلافاصله و بدون انتظار برای ورودی اضافی به کاربر پاسخ دهد، یک دستور سریع ایجاد کنید. برای مثال، میتوانید یک دستور سریع به نام تصویر تصادفی ایجاد کنید که بلافاصله با یک تصویر پاسخ میدهد.
اقدامات پیام: ( پیشنمایش توسعهدهندگان ) کاربران با نگه داشتن ماوس روی یک پیام و کلیک روی منوی سه نقطه از اقدامات پیام استفاده میکنند. برای استفاده از یک دستور، منوی سه نقطه را باز میکنند و یک دستور را از منو انتخاب میکنند.
اگر برنامه چت شما میتواند بر اساس متن یک پیام، اقداماتی انجام دهد، یک اقدام پیام ایجاد کنید.
تصاویر زیر نشان میدهند که کاربران چگونه منوی مربوط به دستورات اسلش و سریع و اقدامات مربوط به پیام را پیدا میکنند:


پیشنیازها
اچتیپی
یک افزونهی Google Workspace که Google Chat را توسعه میدهد. برای ساخت آن، راهنمای سریع HTTP را تکمیل کنید.
اسکریپت برنامهها
یک افزونهی Google Workspace که Google Chat را توسعه میدهد. برای ساخت آن، راهنمای سریع Apps Script را تکمیل کنید.
فرمان را تنظیم کنید
این بخش نحوه انجام مراحل زیر را برای تنظیم یک فرمان توضیح میدهد:
نام و شرح دستور
نام یک دستور، چیزی است که کاربران برای فراخوانی برنامه چت تایپ یا انتخاب میکنند. توضیح کوتاهی نیز در زیر نام آن نمایش داده میشود تا کاربران را در مورد نحوه استفاده از دستور راهنمایی کند:

هنگام انتخاب نام و توضیحات برای دستور خود، توصیههای زیر را در نظر بگیرید:
برای نامگذاری یک دستور:
- از کلمات یا عبارات کوتاه، توصیفی و کاربردی استفاده کنید تا دستورات برای کاربر واضح باشند. برای مثال، به جای نام
Create a reminder،Remind meاستفاده کنید. - استفاده از یک نام منحصر به فرد یا رایج برای دستور خود را در نظر بگیرید. اگر دستور شما یک تعامل یا ویژگی معمولی را توصیف میکند، میتوانید از یک نام رایج که کاربران آن را میشناسند و انتظار دارند، مانند
SettingsیاFeedback، استفاده کنید. در غیر این صورت، سعی کنید از نامهای دستور منحصر به فرد استفاده کنید، زیرا اگر نام دستور شما برای سایر برنامههای چت یکسان باشد، کاربر باید دستورات مشابه را فیلتر کند تا دستور شما را پیدا کرده و از آن استفاده کند.
برای توصیف یک دستور:
- توضیحات را کوتاه و واضح نگه دارید تا کاربران بدانند هنگام استفاده از دستور چه انتظاری داشته باشند.
- اگر الزامات قالببندی برای دستور وجود دارد، به کاربران اطلاع دهید. برای مثال، اگر یک دستور اسلش ایجاد میکنید که به متن آرگومان نیاز دارد، توضیحات را روی چیزی مانند
Remind me to do [something] at [time]تنظیم کنید. - به کاربران اطلاع دهید که آیا برنامه چت به همه افراد حاضر در فضا پاسخ میدهد یا به صورت خصوصی به کاربری که دستور را فراخوانی میکند. به عنوان مثال، برای دستور سریع
About»، میتوانید آن را به صورتLearn about this app (Only visible to you)توصیف کنید.
دستور را در کنسول Google Cloud پیکربندی کنید
برای ایجاد یک دستور اسلش، دستور سریع یا اقدام پیام، شما اطلاعات مربوط به دستور یا اقدام را در پیکربندی برنامه چت خود برای Google Chat API مشخص میکنید.
برای پیکربندی یک دستور در Google Chat API، مراحل زیر را انجام دهید:
در کنسول گوگل کلود، روی منو > APIها و خدمات > APIها و خدمات فعالشده > Google Chat API کلیک کنید.
روی پیکربندی کلیک کنید.
در قسمت تنظیمات اتصال (Connection settings )، به بخش محرکها (Triggers) بروید و جزئیات نقطه پایانی خود را مشخص کنید. برای پاسخ به دستور، باید از این محرک در بخش بعدی استفاده کنید.
- آدرس اینترنتی نقطه پایانی HTTP : میتوانید یک آدرس اینترنتی نقطه پایانی HTTP مشترک را در اینجا مشخص کنید. به طور جایگزین، برای استفاده از نقاط پایانی HTTP مختلف برای تریگرهای مختلف، نقطه پایانی را مستقیماً در فیلد دستور App مشخص کنید.
- Apps Script : شناسهی استقرار Apps Script را وارد کنید. به طور پیشفرض، تابع
onAppCommandفراخوانی میشود. برای استفاده از یک تابع Apps Script متفاوت، نام تابع سفارشی را در فیلد دستور App مشخص کنید.
در قسمت دستورات ، روی افزودن یک دستور کلیک کنید.
اطلاعات زیر را در مورد دستور وارد کنید:
- شناسه فرمان: عددی از ۱ تا ۱۰۰۰ که برنامه چت شما برای تشخیص فرمان و بازگرداندن پاسخ از آن استفاده میکند.
- توضیحات: متنی که نحوه استفاده و قالببندی دستور را شرح میدهد. توضیحات میتوانند تا ۵۰ کاراکتر باشند.
- نوع دستور: یکی از گزینههای دستور سریع ، دستور اسلش یا اقدام پیامرسان را انتخاب کنید.
- برای دستور یک نام مشخص کنید:
- نام دستور سریع: نام نمایشی که کاربران از منو برای فراخوانی دستور انتخاب میکنند. میتواند تا ۵۰ کاراکتر باشد و شامل کاراکترهای ویژه باشد. برای مثال،
Remind me. - نام دستور اسلش: متنی که کاربران برای فراخوانی دستور در یک پیام تایپ میکنند. باید با یک اسلش شروع شود، فقط شامل متن باشد و میتواند تا ۵۰ کاراکتر باشد. برای مثال،
/remindMe. - نام عملیات پیام: (پیشنمایش توسعهدهنده ) نام نمایشی که کاربران از منو برای فراخوانی عملیات پیام انتخاب میکنند. میتواند تا ۵۰ کاراکتر باشد و شامل کاراکترهای خاص باشد. برای مثال،
Remind me.
- نام دستور سریع: نام نمایشی که کاربران از منو برای فراخوانی دستور انتخاب میکنند. میتواند تا ۵۰ کاراکتر باشد و شامل کاراکترهای ویژه باشد. برای مثال،
اختیاری: بارگذاری پیام اعلان : (پیشنمایش توسعهدهنده ) یک پیام اعلان آزمایشی برای نمایش به کاربر هنگام اجرای عملیات پیام. فقط برای عملیات پیامی که کادرهای محاورهای را باز نمیکنند، در دسترس است.
اختیاری: اگر میخواهید برنامه چت شما با یک کادر محاورهای به دستور پاسخ دهد، کادر انتخاب «باز کردن یک کادر محاورهای» را علامت بزنید.
روی ذخیره کلیک کنید.
اکنون دستور برای برنامه چت پیکربندی شده است.
پاسخ به یک فرمان
وقتی کاربران از یک دستور استفاده میکنند، برنامه چت شما یک شیء رویداد دریافت میکند. این رویداد شامل یک شیء appCommandPayload با جزئیاتی در مورد دستوری که فراخوانی شده است (از جمله شناسه دستور و نوع دستور) است، به طوری که بتوانید پاسخ مناسبی را برگردانید. شیء رویداد به نقطه پایانی HTTP یا تابع Apps Script که هنگام پیکربندی تریگر دستور App مشخص کردهاید، ارسال میشود.

/help پاسخ میدهد تا نحوه دریافت پشتیبانی را توضیح دهد. کد زیر نمونهای از یک برنامه چت را نشان میدهد که به دستور اسلش /about با یک پیام متنی پاسخ میدهد. برای پاسخ به دستورات اسلش، برنامه چت اشیاء رویداد را از یک تریگر دستور App مدیریت میکند. هنگامی که payload یک شیء رویداد حاوی شناسه دستور اسلش باشد، برنامه چت اکشن DataActions را با یک شیء createMessageAction برمیگرداند:
نود جی اس
پایتون
جاوا
اسکریپت برنامهها
برای استفاده از این نمونه کد، ABOUT_COMMAND_ID با شناسه دستوری که هنگام پیکربندی دستور در Chat API مشخص کردهاید، جایگزین کنید.
پاسخ به یک پیام
کد زیر نمونهای از یک برنامه چت را نشان میدهد که به اکشن پیام «با یک پیام متنی به من یادآوری کن » پاسخ میدهد. برای پاسخ به اکشنهای پیام، برنامه چت اشیاء رویداد را از یک تریگر دستور App مدیریت میکند. هنگامی که payload یک شیء رویداد شامل شناسه دستور action پیام باشد، برنامه چت اکشن DataActions را با یک شیء createMessageAction برمیگرداند:
نود جی اس
/**
* Responds to an APP_COMMAND interaction event from Google Chat.
*
* @param {Object} event The interaction event from Google Chat.
* @param {Object} res The HTTP response object.
* @return {Object} The JSON response message with a confirmation.
*/
function onAppCommand(event, res) {
// Collect the command ID and type from the event metadata.
const {appCommandId, appCommandType} =
event.chat.appCommandPayload.appCommandMetadata;
if (appCommandType === 'MESSAGE_ACTION' &&
appCommandId === REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
const messageText = event.chat.appCommandPayload.message.text;
// Return a response that includes details from the original message.
return res.json({
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": {
"text": `Setting a reminder for message: "${messageText}"`
}
}
}
}
});
}
}
پایتون
def on_app_command(event):
"""Responds to an APP_COMMAND interaction event from Google Chat.
Args:
event (dict): The interaction event from Google Chat.
Returns:
dict: The JSON response message with a confirmation.
"""
# Collect the command ID and type from the event metadata.
payload = event.get('chat', {}).get('appCommandPayload', {})
metadata = payload.get('appCommandMetadata', {})
if metadata.get('appCommandType') == 'MESSAGE_ACTION' and \
metadata.get('appCommandId') == REMIND_ME_COMMAND_ID:
# Message actions can access the context of the message they were
# invoked on, such as the text or sender of that message.
message_text = payload.get('message', {}).get('text')
# Return a response that includes details from the original message.
return {
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": {
"text": f'Setting a reminder for message: "{message_text}"'
}
}
}
}
}
جاوا
/**
* Responds to an APP_COMMAND interaction event from Google Chat.
*
* @param event The interaction event from Google Chat.
* @param response The HTTP response object.
*/
void onAppCommand(JsonObject event, HttpResponse response) throws Exception {
// Collect the command ID and type from the event metadata.
JsonObject payload = event.getAsJsonObject("chat").getAsJsonObject("appCommandPayload");
JsonObject metadata = payload.getAsJsonObject("appCommandMetadata");
String appCommandType = metadata.get("appCommandType").getAsString();
if (appCommandType.equals("MESSAGE_ACTION")) {
int commandId = metadata.get("appCommandId").getAsInt();
if (commandId == REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
String messageText = payload.getAsJsonObject("message").get("text").getAsString();
// Return a response that includes details from the original message.
JsonObject responseMessage = new JsonObject();
responseMessage.addProperty("text", "Setting a reminder for message: " + messageText);
JsonObject createMessageAction = new JsonObject();
createMessageAction.add("message", responseMessage);
JsonObject chatDataAction = new JsonObject();
chatDataAction.add("createMessageAction", createMessageAction);
JsonObject hostAppDataAction = new JsonObject();
hostAppDataAction.add("chatDataAction", chatDataAction);
JsonObject finalResponse = new JsonObject();
finalResponse.add("hostAppDataAction", hostAppDataAction);
response.getWriter().write(finalResponse.toString());
}
}
}
اسکریپت برنامهها
/**
* Responds to an APP_COMMAND interaction event in Google Chat.
*
* @param {Object} event The interaction event from Google Chat.
* @return {Object} The JSON response message with a confirmation.
*/
function onAppCommand(event) {
// Collect the command ID and type from the event metadata.
const {appCommandId, appCommandType} =
event.chat.appCommandPayload.appCommandMetadata;
if (appCommandType === 'MESSAGE_ACTION' &&
appCommandId === REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
const messageText = event.chat.appCommandPayload.message.text;
// Return a response that includes details from the original message.
return CardService.newChatResponseBuilder()
.setText("Setting a reminder for message: " + messageText)
.build();
}
}
برای استفاده از این نمونه کد، REMIND_ME_COMMAND_ID با شناسه دستوری که هنگام پیکربندی دستور در Chat API مشخص کردهاید، جایگزین کنید.
دستور را آزمایش کنید
برای آزمایش دستور و کد، به بخش «آزمایش ویژگیهای تعاملی برای برنامههای چت گوگل» مراجعه کنید.
برای آشنایی با نحوه آزمایش و استفاده از این دستور در رابط کاربری چت، به بخش «استفاده از برنامهها در گوگل چت» در مستندات راهنمای گوگل چت مراجعه کنید.
مباحث مرتبط
- مشاهده نمونههای برنامه چت که از دستورات استفاده میکنند
- ارسال پیام
- باز کردن پنجرههای محاورهای تعاملی