На этой странице объясняется, как создать и отправить сообщение на главной карточке приложения Chat. Домашняя страница приложения — это настраиваемое карточное сообщение, которое приложение Chat отправляет пользователю, когда он открывает прямое сообщение в приложении Chat.
Например, вы можете настроить сообщение на главной карточке приложения, включив в него советы по взаимодействию с приложением Chat с помощью команд с косой чертой . Для конечных пользователей главная страница приложения доступна только в прямом сообщении приложения Chat, если разработчик приложения включил эту функцию.
Используйте конструктор карточек для разработки и предварительного просмотра карточных сообщений JSON для приложений чата:
Откройте конструктор карточекПредварительные условия
Питон
- Аккаунт Google Workspace с доступом к Google Chat .
- Опубликованное приложение чата. Чтобы создать приложение Chat, ознакомьтесь с этим кратким руководством .
- Приложение Google Chat, настроенное для интерактивности. Дополнительную информацию см. в разделе Настройка приложения Google Chat для получения событий взаимодействия .
Скрипт приложений
- Аккаунт Google Workspace с доступом к Google Chat .
- Опубликованное приложение чата. Чтобы создать приложение Chat, следуйте этому краткому руководству .
- Приложение Google Chat, настроенное для интерактивности. Дополнительную информацию см. в разделе Настройка приложения Google Chat для получения событий взаимодействия .
Настройте в консоли Google Cloud
Питон
В консоли Google Cloud выберите Меню > продукты > Google Workspace > Библиотека продуктов > Google Chat API .
Нажмите «Управление» , а затем перейдите на вкладку «Конфигурация» .
Включите главную страницу приложения поддержки .
Установите флажок «Домашняя страница приложения поддержки» .
В поле «Домашний URL-адрес приложения» добавьте URL-адрес. Обычно это значение совпадает с URL-адресом приложения . Этот URL-адрес вызывается для событий
APP_HOME
.Нажмите Сохранить .
Скрипт приложений
В консоли Google Cloud выберите Меню > продукты > Google Workspace > Библиотека продуктов > Google Chat API .
Нажмите «Управление» , а затем перейдите на вкладку «Конфигурация» .
Установите флажок «Домашняя страница приложения поддержки» .
Нажмите Сохранить .
Настройте приложение чата
Настройте приложение чата для отправки нового карточного сообщения на главную страницу приложения.
Питон
Когда пользователь открывает прямое сообщение из приложения Chat, в ваше приложение Chat отправляется событие APP_HOME
. Когда приложение чата получает это событие, JSON-экземпляр RenderActions
возвращается с навигацией pushCard
.
@app.route('/', methods=['POST'])
def on_event():
event = request.get_json()
chat = event.get('chat')
if chat is not None:
return handle_chat_event(event)
def handle_chat_event(event):
if event['chat'].get('type') == 'APP_HOME':
return get_app_home_card()
def get_app_home_card():
return {
"action": {
"navigations": [
{
"pushCard": {
"sections": [
{
"widgets": [
{
"buttonList": {
"buttons": [
{
"text": "Open documentation",
"onClick": {
"openLink": {
"url": "https://developers.google.com/chat"
}
}
}
]
}
}
]
}
]
}
}
]
}
}
Скрипт приложений
В этом примере отправляется карточное сообщение, возвращая card JSON . Вы также можете использовать службу карточек Apps Script .
Реализуйте функцию onAppHome
для возврата экземпляра RenderActions
в формате JSON с навигацией pushCard
:
// "onAppHome" is the pre-defined name of the callback that the Chat servers
// execute.
function onAppHome() {
return {
action: {
navigations: [
{
pushCard: getCard()
}
]
}
};
}
function getCard() {
return {
sections: [
{
widgets: [
{
buttonList: {
buttons: [
{
text: "Open documentation",
onClick: {
openLink: {
url: "https://developers.google.com/chat"
}
}
}
]
}
}
]
}
]
};
}
Обновление сообщения на главной карточке приложения
Сообщение домашней карточки приложения может быть обновлено, когда пользователь отправляет информацию в сообщении карточки или закрывает диалоговое окно. Например, исходное сообщение с домашней карточкой приложения представляет собой приветственное сообщение, в котором пользователю предлагается заполнить форму с информацией. После того как пользователь заполнит форму, будет отправлено обновленное сообщение с главной карточкой приложения. Обновление должно быть возвращено с экземпляром RenderActions
, содержащим навигацию updateCard
.
Питон
Для HTTP-приложений обновление сообщения домашней карточки приложения аналогично процессу обработки информации, введенной пользователями , но вы должны вернуть RenderActions
. invokedFunction
представляет имя вызванной функции, связанной с виджетом Card
. Дополнительные сведения см. в CommonEventObject
. В следующем примере submitForm
показывает, что пользователь отправил данные формы:
@app.route('/', methods=['POST'])
def on_event():
event = request.get_json()
chat = event.get('chat')
if chat is not None:
return handle_chat_event(event)
def handle_chat_event(event):
if event['chat'].get('type') == 'SUBMIT_FORM':
event_object = event.get('commonEventObject')
if event_object is not None:
// Forms
if 'submitForm' == event_object.get('invokedFunction'):
return {
'render_actions': {
'action': {
'navigations': [{
'updateCard': get_update_card()
}]
}
}
}
def get_update_card():
return {
"action": {
"navigations": [{
"pushCard": {
"sections": [{
"widgets": [{
"buttonList": {
"buttons": [{
"text": "Open documentation",
"onClick": {
"openLink": {
"url": "https://developers.google.com/chat"
}
},
}]
}
}]
}]
}
}]
}
}
Скрипт приложений
В этом примере отправляется карточное сообщение, возвращая card JSON . Вы также можете использовать службу карточек Apps Script .
// Called from elsewhere (i.e. on button press).
function updateAppHomeCard(event) {
return {
render_actions: {
action: {
navigations: [
{
updateCard: getCard()
}
]
}
}
}
}
function getCard() {
return {
sections: [
{
widgets: [
{
buttonList: {
buttons: [
{
text: "Open documentation",
onClick: {
openLink: {
url: "https://developers.google.com/chat"
}
}
}
]
}
}
]
}
]
};
}
Ограничения
Как правило, navigation
недоступна для приложений чата. Вы не можете вернуть стопку карт. Для приложений чата доступны только pushCard
(для первоначального ответа) и updateCard
(для обновлений).
похожие темы
Чтобы открыть диалоговое окно, используйте взаимодействие
OPEN_DIALOG
. Дополнительные сведения см. в разделе Открытие диалогового окна в ответ на сообщение с домашней карточкой приложения .Чтобы закрыть диалоговое окно, используйте взаимодействие
CLOSE_DIALOG
чтобы закрыть диалоговое окно и вернуться к сообщению домашней карточки приложения, или используйте взаимодействиеCLOSE_DIALOG_EXECUTE
чтобы закрыть диалоговое окно и обновить сообщение домашней карточки приложения. Дополнительные сведения см. в разделе «Ответ на диалоговое окно для сообщений домашней карточки приложения» .Пример того, как создать и отправить сообщение с домашней карточкой приложения, см. в приложении Chat для управления проблемами в лаборатории разработки кода «Создание приложений для Google Chat с помощью Gemini» .