Cette page explique comment créer et envoyer des messages privés en tant qu'application Google Chat.
Un message privé est un message d'application Chat visible uniquement par un utilisateur Chat spécifié. Vous pouvez utiliser des messages privés dans des espaces avec plusieurs personnes afin qu'elles puissent interagir en privé avec les applications Chat. Par exemple, votre application Chat peut envoyer des messages en mode privé pour effectuer l'une des opérations suivantes:
- Répondez à une commande à barre oblique. Par exemple, si un utilisateur appelle la commande à barre oblique
/about
de votre application Chat dans un espace, celle-ci peut répondre par un message privé expliquant ce qu'elle fait et comment l'utiliser. - notifier ou envoyer des informations qui ne concernent qu'un seul utilisateur ; Par exemple, informez un utilisateur qu'une tâche lui a été attribuée ou rappelez-lui de la terminer.
- Envoyez un message d'erreur. Par exemple, si un utilisateur omet le texte d'argument requis pour une commande à barre oblique, l'application Chat peut envoyer un message privé pour expliquer l'erreur et aider l'utilisateur à mettre en forme la commande.
Lorsqu'une application Chat envoie un message privé, celui-ci affiche un libellé qui informe l'utilisateur que le message n'est visible que par lui:
Prérequis
Node.js
- Un projet Google Cloud avec l'API Google Chat activée et configurée Pour connaître la procédure à suivre, consultez Créer une application Google Chat.
- Pour répondre en privé à une commande à barre oblique, configurée pour l'application Chat. Pour en créer une, consultez la section Répondre aux commandes à barre oblique.
- Pour envoyer un message privé à l'aide de la méthode
messages.create()
, vous devez utiliser l'authentification d'application.
Remarque:Les exemples de code Node.js de ce guide sont écrits pour s'exécuter en tant que fonction Google Cloud.
Python
- Un projet Google Cloud avec l'API Google Chat activée et configurée Pour connaître la procédure à suivre, consultez Créer une application Google Chat.
- Pour répondre en privé à une commande à barre oblique, configurée pour l'application Chat. Pour en créer une, consultez la section Répondre aux commandes à barre oblique.
- Pour envoyer un message privé à l'aide de la méthode
messages.create()
, vous devez utiliser l'authentification d'application.
Remarque:Les exemples de code Python présentés dans ce guide sont écrits pour s'exécuter en tant que fonction Google Cloud, à l'aide de Python 3.10.
Apps Script ;
- Une application Chat. Pour créer une application Chat, suivez ce quickstart.
- Pour répondre en privé à une commande à barre oblique, configurée pour l'application Chat. Pour en créer une, consultez la section Répondre aux commandes à barre oblique.
- Pour envoyer un message privé à l'aide de la méthode
messages.create()
, vous devez utiliser l'authentification d'application.
Envoyer un message privé
Pour envoyer un message en mode privé en tant qu'application Chat, vous devez spécifier le champ privateMessageViewer
dans le message lorsque vous le créez. Pour créer des messages privés, procédez comme n'importe quel message: soit en répondant à une interaction utilisateur, soit en appelant de manière asynchrone la méthode create()
de l'API Google Chat sur la ressource Message
. Pour savoir comment envoyer des SMS ou des messages envoyés sous forme de carte, consultez Envoyer un message.
L'exemple suivant montre le code JSON d'un message texte privé indiquant Hello private world!
:
{
"text": "Hello private world!",
"privateMessageViewer": "USER"
}
Dans cet exemple, USER
représente l'utilisateur de Chat qui peut afficher le message, mis en forme en tant que ressource User
. Si vous répondez à une interaction utilisateur, vous pouvez spécifier l'objet User
de l'événement d'interaction.
Pour obtenir un exemple, consultez la section Répondre en privé à une commande à barre oblique.
Sinon, pour spécifier le lecteur pour un message privé, vous pouvez utiliser le champ name
de la ressource User
:
{
"text": "Hello private world!",
"privateMessageViewer": {
"name": "users/USER_ID"
}
}
Dans cet exemple, vous utilisez le champ name
pour spécifier le nom de la ressource User
du lecteur dans Google Chat. Remplacez USER_ID
par un ID unique pour l'utilisateur, tel que 12345678987654321
ou hao@cymbalgroup.com
.
Pour en savoir plus sur la spécification des utilisateurs, consultez Identifier et spécifier des utilisateurs Google Chat.
Répondre en privé à une commande à barre oblique
Le code suivant montre un exemple d'application Chat qui répond à une commande à barre oblique avec un message privé.
L'application Chat traite un événement d'interaction MESSAGE
et répond à la commande à barre oblique /help
par un message texte privé expliquant comment l'utiliser:
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.'
});
};
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.',
}
Limites
Pour envoyer un message privé, celui-ci ne peut pas contenir ni utiliser les éléments suivants:
- Pièces jointes :
- Actions accessoires :
- Messages partiellement privés. Par exemple, une application Chat ne peut pas envoyer de message contenant du texte et une fiche où le texte n'est visible que par un seul utilisateur, mais que la fiche est visible par tous les membres de l'espace.
- Authentification des utilisateurs : Seules les applications Chat peuvent envoyer des messages privés. Votre application Chat ne peut donc pas s'authentifier en tant qu'utilisateur pour envoyer un message en privé.
Mettre à jour ou supprimer des messages privés
Pour mettre à jour ou supprimer les messages Google Chat, vous devez appeler l'API Chat. Vous ne pouvez pas modifier le lecteur du message privé ni le rendre public. Par conséquent, lorsque vous mettez à jour des messages privés, vous devez omettre le champ privateMessageViewer
dans l'appel d'API (le champ est uniquement en sortie).
Pour mettre à jour un message privé, consultez Mettre à jour un message. Pour supprimer un message privé, consultez l'article Supprimer un message.
Articles associés
- Envoyer un message
- Identifier et spécifier les utilisateurs Google Chat
- Répondre aux commandes à barre oblique
- Modifier un message
- Supprimer un message