Z tego artykułu dowiesz się, jak tworzyć i wysyłać wiadomości prywatne w aplikacji Google Chat.
Wiadomość prywatna to wiadomość w aplikacji Google Chat, która jest widoczna tylko dla określonego użytkownika tej usługi. Wiadomości prywatnych w pokojach z wieloma osobami możesz używać w pokojach, aby umożliwić im prywatne interakcje z aplikacjami Google Chat. Na przykład aplikacja Google Chat może wysyłać prywatnie wiadomości w tych celach:
- Odpowiedz na polecenie po ukośniku. Jeśli na przykład użytkownik wywoła w pokoju polecenie
/about
z Twojej aplikacji do obsługi czatu, ta aplikacja może wysłać w odpowiedzi wiadomość prywatną z opisem działania aplikacji do obsługi czatu i jej używania. - Możesz powiadamiać i wysyłać informacje, które są istotne tylko dla jednego użytkownika. Możesz na przykład powiadomić użytkownika, że przypisano mu zadanie, lub przypomnieć mu o jego ukończeniu.
- Wyślij komunikat o błędzie. Jeśli na przykład użytkownik pominie wymagany tekst argumentu w poleceniu po ukośniku, aplikacja Google Chat może wysłać prywatną wiadomość z wyjaśnieniem błędu i pomocną w sformatowaniu polecenia.
Gdy aplikacja do obsługi czatu wysyła wiadomość prywatną, wyświetla się w niej etykieta informująca użytkownika, że wiadomość jest widoczna tylko dla niego:
Wymagania wstępne
Node.js
- Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w artykule Tworzenie aplikacji Google Chat.
- Aby prywatnie odpowiadać na polecenie po ukośniku, skonfigurowane dla aplikacji Google Chat polecenie po ukośniku. Aby je utworzyć, zapoznaj się z sekcją o reagowaniu na polecenia po ukośniku.
- Aby wysłać wiadomość prywatną za pomocą metody
messages.create()
, musisz użyć uwierzytelniania aplikacji.
Uwaga: przykładowy kod w Node.js w tym przewodniku został przygotowany do uruchamiania jako funkcji w Google Cloud Functions.
Python
- Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w artykule Tworzenie aplikacji Google Chat.
- Aby prywatnie odpowiadać na polecenie po ukośniku, skonfigurowane dla aplikacji Google Chat polecenie po ukośniku. Aby je utworzyć, zapoznaj się z sekcją o reagowaniu na polecenia po ukośniku.
- Aby wysłać wiadomość prywatną za pomocą metody
messages.create()
, musisz użyć uwierzytelniania aplikacji.
Uwaga: przykładowy kod w Pythonie w tym przewodniku został opracowany tak, aby uruchamiał się jako funkcja w Google Cloud Functions z użyciem języka Python 3.10.
Google Apps Script
- Aplikacja do obsługi Google Chat. Aby utworzyć aplikację do obsługi Google Chat, postępuj zgodnie z tym quickstart.
- Aby prywatnie odpowiadać na polecenie po ukośniku, skonfigurowane dla aplikacji Google Chat polecenie po ukośniku. Aby je utworzyć, zapoznaj się z sekcją o reagowaniu na polecenia po ukośniku.
- Aby wysłać wiadomość prywatną za pomocą metody
messages.create()
, musisz użyć uwierzytelniania aplikacji.
Wyślij wiadomość prywatną
Aby wysłać wiadomość prywatnie jako aplikację Google Chat, podczas tworzenia wiadomości określ w niej pole privateMessageViewer
. Wiadomości prywatne tworzy się tak samo jak każdą wiadomość: odpowiadają na interakcję użytkownika lub asynchronicznie wywołując metodę create()
interfejsu Google Chat API z użyciem zasobu Message
. Instrukcje wysyłania SMS-ów i kartek znajdziesz w artykule Wysyłanie wiadomości.
Ten przykład pokazuje kod JSON prywatnej wiadomości tekstowej Hello private world!
:
{
"text": "Hello private world!",
"privateMessageViewer": "USER"
}
W tym przykładzie USER
reprezentuje użytkownika Google Chat, który może wyświetlić wiadomość, w formacie zasobu User
. Jeśli odpowiadasz na interakcję użytkownika, możesz określić obiekt User
ze zdarzenia interakcji.
Przykład znajduje się w sekcji Odpowiadanie prywatnie na polecenie po ukośniku.
Aby określić przeglądającego wiadomość prywatną, możesz użyć pola name
zasobu User
:
{
"text": "Hello private world!",
"privateMessageViewer": {
"name": "users/USER_ID"
}
}
W tym przykładzie użyjesz pola name
, aby określić nazwę zasobu User
wyświetlającego w Google Chat. Zastąp USER_ID
unikalnym identyfikatorem użytkownika, takim jak 12345678987654321
lub hao@cymbalgroup.com
.
Więcej informacji na temat określania użytkowników znajdziesz w artykule Identyfikowanie i określanie użytkowników Google Chat.
Odpowiadanie prywatnie na polecenie po ukośniku
Poniższy kod pokazuje przykład aplikacji Google Chat, która odpowiada na polecenie po ukośniku w wiadomości prywatnej.
Aplikacja Google Chat przetwarza zdarzenie interakcji MESSAGE
i odpowiada na polecenie po ukośniku /help
, wysyłając prywatnego SMS-a z wyjaśnieniem, jak z niego korzystać:
Node.js
/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {!Object} req Request sent from Google Chat app
* @param {!Object} res Response to send back
*
* @return {!Object} respond to slash command
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
return res.send('Hello! This function is meant to be used in Google Chat app.');
}
const event = req.body;
// Checks for the presence of event.message.slashCommand.
// If the slash command is "/help", responds with a private text message.
if (event.message.slashCommand) {
switch (event.message.slashCommand.commandId) {
case '1': // /help
return res.json({
privateMessageViewer: event.user,
text: 'This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>.'
});
}
}
// If the Chat app doesn't detect a slash command, it responds
// with a private text message
return res.json({
privateMessageViewer: event.user,
text: 'Try a slash command.'
});
};
Google Apps Script
/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {Object} event the event object from Google Chat
*/
function onMessage(event) {
if (event.message.slashCommand) {
switch (event.message.slashCommand.commandId) {
case 1: // Responds to /help
return {
"privateMessageViewer": event.user,
"text": "This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>."
};
}
}
else {
return { "text": "Try a slash command.", "privateMessageViewer": event.user };
}
}
Python
from typing import Any, Mapping
import flask
import functions_framework
@functions_framework.http
def main(req: flask.Request) -> Mapping[str, Any]:
"""Responds to a MESSAGE event in Google Chat.
Args:
req (flask.Request): the event object from Chat API.
Returns:
Mapping[str, Any]: open a Dialog in response to a card's button click.
"""
if req.method == 'GET':
return 'Hello! This function must be called from Google Chat.'
request = req.get_json(silent=True)
# Checks for the presence of event.message.slashCommand.
# If the slash command is "/help", responds with a private text message.
if request.get('message', {}).get('slashCommand'):
command_id = request.get('message', {}).get('slashCommand').get('commandId')
if command_id == '1': # /help
return {
'privateMessageViewer': request.get('user'),
'text': (
'This Chat app was created by Cymbal Labs. To get help with this'
' app, <https://cymbalgroup.com/docs|see our documentation> or'
' <https://cymbalgroup.com/support|contact our support team>.'
),
}
return {
'privateMessageViewer': request.get('user'),
'text': 'Try a slash command.',
}
Ograniczenia
Wysyłanie wiadomości prywatnej nie może zawierać następujących elementów:
- Załączniki.
- Działania związane z akcesoriami.
- Wiadomości częściowo prywatne. Na przykład aplikacja Google Chat nie może wysłać wiadomości z tekstem i karty, gdy tekst jest widoczny tylko dla jednego użytkownika, ale karta jest widoczna dla wszystkich osób w pokoju.
- Uwierzytelnianie użytkowników. Tylko aplikacje do obsługi czatu mogą wysyłać wiadomości prywatne, więc aplikacja ta nie może uwierzytelnić się jako użytkownik, aby wysyłać prywatne wiadomości.
Aktualizowanie i usuwanie wiadomości prywatnych
Aby zaktualizować lub usunąć wiadomości w Google Chat, musisz wywołać interfejs Chat API. Nie możesz zmienić przeglądającego wiadomości prywatnej ani upublicznić wiadomości. Dlatego gdy aktualizujesz wiadomości prywatne, musisz w wywołaniu interfejsu API pominąć pole privateMessageViewer
(to pole zawiera tylko dane wyjściowe).
Aby zaktualizować wiadomość prywatną, zobacz Aktualizowanie wiadomości. Aby dowiedzieć się, jak usunąć wiadomość prywatną, przeczytaj sekcję Usuwanie wiadomości.
Powiązane artykuły
- Wyślij wiadomość
- Identyfikowanie i określanie użytkowników Google Chat
- Reagowanie na polecenia po ukośniku
- Aktualizowanie wiadomości
- Usuwanie wiadomości