Actualmente, la integración con el canal Google Assistant únicamente está disponible para usuarios Enterprise.
Genera una clave:
Paso 1: Abre esta URL, reemplazando "AQUÍ" con el Projet ID de tu proyecto de Acciones: https://console.developers.google.com/apis/api/actions.googleapis.com/overview?project=AQUI
Paso 2: Si ves un botón "Enable", haz clic en él. Si no es así, continúa con el paso 3.
Paso 3: Abre esta URL, reemplazando "AQUÍ" con el Projet ID de tu proyecto de Acciones: https://console.developers.google.com/apis/credentials?project=AQUI
Paso 4: haz clic en Create credentials > Service Account Key:
Paso 5: en el cuadro de selección de Service Account, elige New Service Account
Paso 6: Nombra la cuenta como "notifications" y cambia el rol Role para Project > Owner.
Paso 7: elige JSON para el key tipe y haz clic en Create. Se descargará un archivo JSON con la clave de la cuenta de servicio (service account key) en tu computadora.
Paso 8: el archivo se verá así:
Paso 9: Copia y pega el contenido del archivo en la configuración avanzada del bot, de la siguiente manera (coloca esto en la última pantalla de configuración del canal):
- Dominio: postmaster@assistant.gw.msging.net
- Clave:
ServiceCredentialJson
. - Valor: contenido del archivo descargado.
Paso 10: crea otra entrada en la tabla de Configuraciones Avanzadas, con la clave DefaultPushClickMessage
(coloca esto en la última pantalla de configuración del canal). El valor será el mensaje enviado por defecto al bot cada vez que un usuario haga clic en una notificación push. No es posible diferenciar en qué push se hizo clic o cuándo.
Debes configurar dos nuevas acciones (actions) en la aplicación Actions On Google. Simplemente cambia el archivo actions.json
, creado anteriormente, para que las dos nuevas acciones sigan el patrón.
- Una acción para lidiar con el permiso otorgado o denegado (PERMISSION) y
- Una acción para manejar el clic del usuario en una notificación de aplicación (
iris.assistant.intent.PUSH_CLICKED
).
{
"actions": [
{
"description": "Default Welcome Intent",
"name": "MAIN",
"fulfillment": {
"conversationName": "IRISBot"
},
"intent": {
"name": "actions.intent.MAIN",
"trigger": {
"queryPatterns": [
"talk to IRISBot",
"I want to talk to IRISBot"
]
}
}
},
{
"description": "Permission",
"name": "PERMISSION",
"fulfillment": {
"conversationName": "IRISBot"
},
"intent": {
"name": "actions.intent.PERMISSION",
"trigger": {
"queryPatterns": [
"interact with push notification"
]
}
}
},
{
"description": "Push Interaction Intent",
"name": "PUSH_CLICKED",
"fulfillment": {
"conversationName": "IRISBot"
},
"intent": {
"name": "iris.assistant.intent.PUSH_CLICKED",
"trigger": {
"queryPatterns": [
"interact with push notification"
]
}
}
}
],
"conversations": {
"IRISBot": {
"name": "IRISBot",
"url": "https://assistant.gw.msging.net/irisbot-624c5"
}
},
"locale": "en"
}
Y envíalo de vuelta a Actions on Google, usando el comando gactions
. Con eso, aparecerán dos nuevas acciones en el panel, en Build> Actions:
Ingresa a la nueva acción de interacción push y ve a la sección “User engagement” donde debes seleccionar la opción para enviar notificaciones push. Ingresa el "Content Title" con tu nombre preferido (la notificación se mostrará con este nombre, que también se utilizará para solicitar permiso para enviar notificaciones, por ejemplo: "¿Te gustaría recibir notificaciones para el nombre de tu bot?"). Guardar en la parte superior de la página, a la derecha.
Sin embargo, antes de poder enviar notificaciones, es necesario solicitar el permiso de la persona y guardar su identificación y qué intención se utilizará para recibir las notificaciones (será la intención PUSH_CLICKED
creada anteriormente), siempre y cuando la persona permita las notificaciones. Primero, pregunta si la persona quiere las notificaciones y, si las quiere, la puerta de enlace (gateway) le enviará una respuesta (response) con la posible intención (possible intent) de la siguiente manera:
{
"expectedInputs": [
{
"inputPrompt": {
"richInitialPrompt": {
"items": [
{
"simpleResponse": {
"textToSpeech": "PLACEHOLDER"
}
}
]
}
},
"possibleIntents": [
{
"intent": "actions.intent.PERMISSION",
"inputValueData": {
"@type": "type.googleapis.com/google.actions.v2.PermissionValueSpec",
"permissions": [
"UPDATE"
],
"updatePermissionValueSpec": {
"intent": "iris.assistant.intent.PUSH_CLICKED"
}
}
}
]
}
],
}
A tal efecto, se recibirá la respuesta de la persona, otorgando o no el permiso. Envíale algún mensaje a la persona que diga que guardó el permiso.
Para enviar notificaciones, se debe enviar un mensaje push personalizado al Assistant, marcando al usuario deseado en el target
y enviando el título de la notificación:
{
"customPushMessage": {
"userNotification": {
"title": "este é um título"
},
"target": {
"userId": "ABwppHEdPIEOjDg9SSFaUeaV9Uc8JoFDs1Kchrj4RgIS8fauKNfpr3K5ag",
"intent": "iris.assistant.intent.PUSH_CLICKED",
"locale": "en-US"
}
}
}
La notificación aparecerá de la siguiente manera:
- “este es un título”: título enviado.
- “IRISBot”: Nombre establecido para la acción, al configurar la participación del usuario (User engagement).
- “Mari Ana”: Nombre utilizado para invocar al bot en el Assistant Imagen: Imagen de la aplicación elegida en el panel Actions.
Para obtener más información, acceda a la discusión sobre el tema en nuestra comunidad o los videos en nuestro canal. 😃