Cuando el cliente le envía un mensaje, el cliente API de WhatsApp Business enviará una notificación de solicitud HTTP POST a la URL de Webhook con los detalles que se describen en este manual.
Webhooks son devoluciones de llamada HTTP definidas por el usuario que se desencadenan por eventos específicos. Cada vez que se produce un evento desencadenante, el cliente de la API empresarial de WhatsApp verá el evento, recopilará los datos e inmediatamente enviará una notificación (solicitud HTTP) a la URL de WhatsApp especificada en la configuración de la aplicación, actualizando el estado de los mensajes enviados o indicando cuándo recibir un mensaje
Es importante que su Webhook devuelva una respuesta HTTPS 200 OK a las notificaciones. De lo contrario, el cliente de la API empresarial de WhatsApp considerará que esta notificación es un error y volverá a intentarlo después de un retraso.
Configurar ajustes de notificaciones
webhooks:proporcione la URL para su Webhook. OBlIGATÓRIO cuando estás usando Webhooks. Si la URL de Webhook no está definida, se eliminan las devoluciones de llamada.
Siempre que sea posible, los nombres se mantendrán constantes en todas las funciones. (Por ejemplo, todas las marcas de tiempo se llamantimestamp.
Formato de Webhook de notificaciones
Todos los campos posibles del Webhook de notificación se muestran a continuación.
Ejemplo
POST / { "contacts": [ { "profile": { "name": "sender-profile-name" }, "wa_id": "wa-id-of-contact" } ], "messages": [ "context": { "from": "sender-wa-id-of-context-message", "group_id": "group-id-of-context-message", "id": "message-id-of-context-message", "mentions": [ "wa-id1", "wa-id2" ] }, "from": "sender-wa-id", "group_id": "group-id", "id": "message-id", "timestamp": "message-timestamp", "type": "audio | document | image | location | system | text | video | voice", # Se houver algum erro, o campo de erros (matriz) estará presente. # O campo de erros pode ser retornado como parte de qualquer evento de retorno de chamada. "errors": [ { ... } ], "audio": { "file": "absolute-filepath-on-coreapp", "id": "media-id", "link": "link-to-audio-file", "mime_type": "media-mime-type", "sha256": "checksum" } "document": { "file": "absolute-filepath-on-coreapp", "id": "media-id", "link": "link-to-document-file", "mime_type": "media-mime-type", "sha256": "checksum", "caption": "document-caption" } "image": { "file": "absolute-filepath-on-coreapp", "id": "media-id", "link": "link-to-image-file", "mime_type": "media-mime-type", "sha256": "checksum", "caption": "image-caption" } "location": { "address": "1 Hacker Way, Menlo Park, CA, 94025", "latitude": latitude, "longitude": longitude, "name": "location-name" } "system": { "body": "system-message-content" } "text": { "body": "text-message-content" } "video": { "file": "absolute-filepath-on-coreapp", "id": "media-id", "link": "link-to-video-file", "mime_type": "media-mime-type", "sha256": "checksum" } "voice": { "file": "absolute-filepath-on-coreapp", "id": "media-id", "link": "link-to-audio-file", "mime_type": "media-mime-type", "sha256": "checksum" } ] }
Errores de notificación
Cuando se producen errores fuera de banda en el funcionamiento normal de la aplicación, la matriz de errores proporcionará una descripción del error. Este tipo de error puede ser causado por errores temporales de conectividad de red, credenciales no válidas, controladores de administración con estado no disponible, etc. Si recibe un error, consulte Mensajes de error y estado para obtener más información.
El objeto de errores
El objeto de errores contiene los siguientes parámetros:
Notificiones de mensajes de entrada
Recibirá una notificación cuando su empresa reciba un mensaje. La sección del objeto de mensajes a continuación presenta toda la información que se puede recibir sobre un mensaje entrante.
Cuando se recibe el mensaje de medios, el cliente de la API empresarial de WhatsApp descarga los medios. Se envía una notificación a su Webhook cuando se descargan los medios. Este mensaje contiene información que identifica el objeto multimedia y le permite encontrar y recuperar el objeto. Use el punto final de medios con la identificación de medios para recuperarlo.
Ejemplo: Mensaje con imagen recibida
{
"messages":[{
"from":"16315551234",
"id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf",
"image":{
"file":"/usr/local/wamedia/shared/b1cf38-8734-4ad3-b4a1-ef0c10d0d683",
"id":"b1c68f38-8734-4ad3-b4a1-ef0c10d683",
"mime_type":"image/jpeg",
"sha256":"29ed500fa64eb55fc19dc4124acb300e5dcc54a0f822a301ae99944db"
"caption": "Check out my new phone!"},
"timestamp":"1521497954",
"type":"image"
}]
}
Los usuarios pueden responder a un mensaje específico en WhatsApp. Para que la empresa comprenda el contexto de la respuesta a un mensaje, incluimos el objeto de contexto. Este objeto de contexto proporciona la identificación del mensaje a la que respondió el cliente y la identificación de WhatsApp del remitente del mensaje original.
Los mensajes del sistema se generan cuando ocurre un evento, por ejemplo, un usuario agrega / elimina otro usuario o deja un grupo, etc. Consulte la sección de objetos del sistema a continuación para obtener más información.
Por ejemplo, se recibieron los siguientes mensajes del sistema (1) cuando un usuario se unió a un grupo y (2) cuando un administrador agregó un icono al grupo.
Message received: {"messages":[{"from":"12345678901","group_id":"16315558011-1521728362","id":"gBEGkYiEB1VXAglK1ZEqA1YKPrU","system":{"body":"+1 (234) 567-8901 was added"},"timestamp":"1521739514","type":"system"}]}
Message received: {"messages":[{"from":"16315558011","group_id":"16315558011-1521728362","id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf","system":{"body":"+1 (631) 555-8011 changed this group's icon"},"timestamp":"1521745780","type":"system"}]}
Documentación oficial WhatsApp Business API
Positus sigue los estándares API exactamente igual que el estándar oficial de Facebook / WhatsApp. La documentación completa y actualizada se puede encontrar en el siguiente enlace: