WhatsApp - Configuraciones Específicas
Por defecto, WhatsApp formatea los botones como una lista numerada en lugar de botones interactivos. Esto se debe a que utiliza su propio sistema de componentes.
Comportamiento por defecto
| *Selecciona una opción:*
*1.* ```Opción 1```
*2.* ```Opción 2```
*3.* ```Opción 3```
|
Configuración para Botones Reales
Para que WhatsApp use botones JSON estructurados (como otros canales), puedes usar la configuración force_talkcenter_payload:
| # En el contexto del bot
context['_settings'] = {
'force_talkcenter_payload': True
}
|
Ejemplo de Uso
| # Sin la configuración (lista numerada)
def quick_reply_default(context, text, replies):
# Resultado: texto con lista numerada
return get_translator(context).quick_replies(text, replies)
# Con la configuración (botones JSON)
def quick_reply_buttons(context, text, replies):
context['_settings'] = {'force_talkcenter_payload': True}
# Resultado: estructura JSON con botones
return get_translator(context).quick_replies(text, replies)
|
Resultado con force_talkcenter_payload: True
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | {
"type": "button-quick",
"payload": {
"text": "Selecciona una opción:",
"blockable": false,
"buttons": [
{
"type": "postback",
"title": "Opción 1",
"payload": "payload1"
},
{
"type": "postback",
"title": "Opción 2",
"payload": "payload2"
}
]
}
}
|
- Lista numerada (defecto): Para compatibilidad con clientes WhatsApp básicos
- Botones JSON: Para integraciones avanzadas que soporten botones interactivos
Archivos relacionados
backend/bc_behavior/execution/modules/components/whatsapp_components.py
backend/bc_behavior/execution/modules/components/components_module.py
backend/bc_behavior/tests/modules/components/test_whatsapp.py