为了账号安全,请及时绑定邮箱和手机立即绑定

如何用Webhooks处理 WhatsApp消息通知

标签:
API 移动开发

通过您的 WhatsApp 号码自动化处理进来的和出去的 webhook 消息通知。我们来看看一些实际的例子来解释不同的应用场景。

Webhooks简介

Webhooks 是在软件系统中实现事件监控和集成的非常有用且高效的方式。

本质上,Webhooks 提供了一种通信方式,使得服务器端的应用程序可以向第三方的服务器端应用程序发送通知,当系统上出现了事件,这些事件可能是客户端应用感兴趣的。

Webhooks 是基于“事件触发反应”的概念(不要打电话给我,我会主动通知你),从而避免了消费者应用频繁轮询服务器应用的需要。因此,与其让您的消费者应用不断轮询服务器应用以检查是否有新事件,不如让服务器应用在有新消息时通过 HTTP 协议调用您提供的 webhook URL。

🤩 🤖Wassenger 是一个专为WhatsApp设计的完整通信平台和API解决方案。探索超过100个API用例,并注册免费试用来立即开始自动化任何WhatsApp操作! 立即开始吧!

一个清晰且定义明确的用例恰恰是 WhatsApp 对话,当你不知道用户什么时候会发消息,但消息一收到就处理,并可能再回复用户一条消息时。 这可以通过你的软件和 Wassenger 之间使用 Webhooks 轻松搞定。 Webhooks 是自动对话,比如聊天机器人,的基础。

Webhooks 可以与任何软件配合工作,无论你使用什么编程语言,通信通常使用 HTTP(S) 协议,数据以 JSON 格式进行序列化。

在这里找到简单的介绍

一些实用的资源

对于生产集成,必须使用 HTTPS 而不是 HTTP,因为后者不提供加密,这样可以确保通信实现端到端的加密和安全。

Webhook触发事件

以下是一些支持的 webhook 事件的列表,这些事件会根据不同的场景通知您的系统:

  • [message:in:new](https://app.wassenger.com/help/webhooks#当收到新的入站消息时): 每当收到新的入站消息时触发(仅适用于平台计划)
  • [message:out:new](https://app.wassenger.com/help/webhooks#当一条出站消息成功送达时): 每当用户通过已连接的WhatsApp账号向其他用户发送的出站消息成功送达时触发(仅适用于平台计划)
  • [message:out:ack](https://app.wassenger.com/help/webhooks#当发送的消息被用户读取或播放时): 每当出站消息状态变更时触发,比如消息被用户接收或读取时(仅适用于平台商务和企业计划)
  • [message:out:failed](https://app.wassenger.com/help/webhooks#当消息发送失败时): 每当消息发送失败时触发,例如重试次数超出、媒体无效或目标电话号码未找到
  • [group:update](https://app.wassenger.com/help/webhooks#当群组更新时): 每当群组发生变化时触发:更新群组主题、添加或删除参与者、更新群组权限等
  • [channel:in](https://app.wassenger.com/help/webhooks#当渠道收到新的消息时): 每当您关注的任何渠道收到新的消息时触发(仅适用于平台计划)
  • [message:update](https://app.wassenger.com/help/webhooks#当消息更新时): 每当消息更新时触发:投票有新投票、会议事件出席确认或拒绝、消息被编辑等
  • [message:reaction](https://app.wassenger.com/help/webhooks#在消息反应时): 每当有新的消息反应时触发,包括添加或删除消息反应。适用于用户和群组聊天,不支持渠道
  • [status:update](https://app.wassenger.com/help/webhooks#在用户状态更新时): 每当有新的用户状态(故事)发布时触发,状态更新可以包含文本、图片或视频。您只能查看来自WhatsApp联系人的状态更新
  • [chat:update](https://app.wassenger.com/help/webhooks#聊天更新): 每当聊天更新时触发:聊天状态被分配、取消、解决或未解决,通过API或从聊天界面手动更新
  • [contact:update](https://app.wassenger.com/help/webhooks#联系人更新): 每当联系人信息、元数据或状态(激活、阻止)更新时触发通知,通过API或用户手动从聊天或CRM中更新
当收到新的消息时 🔗

事件类型: 消息:in:new

每当有来自其他用户或群组聊天的新消息发送到您的WhatsApp账号时都会提醒。

{
  "object": "消息",
  "event": "新消息到达",
  "created": 17211094,
  "device": {
    "id": "61b37a069cba0c15d",
    "phone": "+1234567890",
    "alias": "营销",
    "plan": "io-enterprise",
    "version": 1
  },
  "data": {
    "id": "D94B1A12EC4E83F5F4CC71EC2B1E",
    "type": "文本消息",
    "flow": "接收",
    "status": "待定",
    "ack": "已接收",
    "from": "13245635780@c.us",
    "fromNumber": "+13245635780",
    "to": "1234567890@c.us",
    "toNumber": "+1234567890",
    "date": "2022-08-19T10:59:21.000Z",
    "timestamp": 16609067,
    "body": "你好",
    "chat": {
      "id": "1234567890@c.us",
      "name": "Bob A.",
      "date": "2023-10-17T13:20:36.000Z",
      "type": "聊天",
      "status": "待定",
      "waStatus": "已移除",
      "statusUpdatedAt": "2023-10-17T14:22:17.338Z",
      "deletedAt": "2023-10-18T06:16:15.163Z",
      "firstMessageAt": "2022-08-19T10:59:08.000Z",
      "lastMessageAt": "2023-10-17T13:20:36.000Z",
      "lastOutboundMessageAt": "2023-10-17T13:20:36.000Z",
      "lastInboundMessageAt": "2023-10-17T13:20:33.000Z",
      "lastReactionAt": "2023-06-14T19:04:37.000Z",
      "lastReactionEmoji": "😀",
      "lastAutoReply": "暂时离线",
      "lastAutoReplyAt": "2023-10-13T08:24:51.000Z",
      "stats": {
        "notes": 0,
        "localMessages": 51,
        "inboundMessages": 0,
        "outboundMessages": 0
      },
      "labels": [
        "7",
        "NEW",
        "标签"
      ],
      "owner": {
        "agent": null,
        "assigner": null,
        "assignedAt": "2023-10-05T10:28:50.350Z",
        "autoAssignAgent": "5f71e36254800",
        "autoAssignedAt": "2024-07-16T16:51:14.439",
        "previousAgent": "5f71e36254800f5",
        "unassignedAt": null,
        "autoUnassignedAt": "2023-10-17T14:22:17.338Z"
      },
      "contact": {
        "wid": "12345678909@c.us",
        "name": "Bob A.",
        "shortName": "Bob",
        "displayName": "Bob",
        "formattedName": "Bob A.",
        "formattedShortName": "Bob",
        "syncedAt": "2024-05-11T21:26:09.145Z",
        "phone": "+12345678909",
        "image": {
          "url": "https://pps.whatsapp.net/v/t61.24694-24/411911369_3591536647785509_6334106330772289684_n.jpg?ccb=11-4&oh=01_Q5AaIEXiVwMlj4JyYkLIA8aT5uBxvocjEbbOqBC52ccmj-dF&oe=669E512A&_nc_sid=e6ed6c&_nc_cat=101"
        },
        "type": "用户",
        "updatedAt": "2024-06-05T16:37:18.034Z",
        "createdBy": null,
        "locationInfo": {
          "alpha2": "US",
          "alpha3": "USA",
          "countryCallingCodes": [
            "+1"
          ],
          "currencies": [
            "USD"
          ],
          "emoji": "",
          "ioc": "USA",
          "languages": [
            {
              "code": "USA",
              "iso": "en",
              "name": "英语",
              "nativeName": "English"
            }
          ],
          "name": "美国",
          "status": "分配"
        },
        "metadata": [
          {
            "key": "CRM_CUSTOMER_ID",
            "value": "a1c46535"
          },
          {
            "key": "CRM_LINK",
            "value": "https://crm.company.com/customers/a1c465355"
          }
        ],
        "businessInfo": {
          "address": "350 5th Ave, New York, NY 10118",
          "description": "公司名称",
          "latitude": 40.748474043,
          "longitude": -73.98542196,
          "categories": [
            {
              "id": "1065597503",
              "name": "软件业务"
            }
          ],
          "website": [],
          "businessHours": {
            "timezone": "America/New_York",
            "config": [
              {
                "weekDay": "monday",
                "mode": "open_24h"
              },
              {
                "weekDay": "tuesday",
                "mode": "specific_hours"
              },
              {
                "weekDay": "wednesday",
                "mode": "specific_hours",
                "openTime": 480,
                "closeTime": 1080
              },
              {
                "weekDay": "thursday",
                "mode": "appointment_only"
              },
              {
                "weekDay": "friday",
                "mode": "appointment_only"
              },
              {
                "weekDay": "saturday",
                "mode": "appointment_only"
              }
            ]
          },
          "options": {
            "cart": true,
            "catalog": true
          }
        }
      },
      "statusUpdatedBy": "5f71e36254800f53",
      "lastAutoReplyMessage": "3EB02C30928C59",
      "links": {
        "chat": "/v1/chat/61b37a069cba0c1/chats/12345678909@c.us"
      }
    },
    "events": {
      "sent": {
        "date": "2024-07-16T12:00:00.000Z"
      }
    },
    "meta": {
      "rtl": false,
      "containsEmoji": false,
      "isGif": false,
      "isStar": false,
      "isGroup": false,
      "isForwarded": false,
      "isEphemeral": false,
      "isNotification": false,
      "isLive": false,
      "isBroadcast": false,
      "isBizNotification": false,
      "isDoc": false,
      "isLinkPreview": false,
      "isPSA": false,
      "isRevoked": false,
      "isUnreadType": false,
      "isFailed": false,
      "source": "android",
      "autoReply": null,
      "isFirstMessage": true,
      "isChannel": false,
      "notifyName": ""
    },
    "scope": "消息",
    "webhook": {
      "status": "已通知",
      "webhookSyncedAt": "2022-08-23T08:40:47.371Z"
    },
    "links": {
      "message": "/v1/chat/61b37a069cba0/messages/D94B1A12EC4E83F5F4CC71EC2",
      "chat": "/v1/chat/61b37a069cba0/chats/12345678909@c.us",
      "contact": "/v1/chat/61b37a069cba0/contacts/12345678909@c.us",
      "chatMessages": "/v1/chat/61b37a069cba0c/messages?chat=12345678909@c.us",
      "device": "/v1/devices/61b37a069cba0c"
    }
  }
}

🤩 🤖Wassenger 是一个完整的通信平台和 WhatsApp API 解决方案。探索超过 100 种 API 使用场景,并轻松搞定 WhatsApp 上的任何操作 ,立即免费注册并开始试用,几分钟内即可上手!

当发送的消息成功发送 🔗

事件类型: message:out:new:

每次您从您的号码向任何用户或群聊发送新的消息时,都会触发此事件的通知。

请注意,每次通过API、网页端聊天或从WhatsApp手机应用程序发送消息时,以及其他与WhatsApp桌面或网页版连接的设备发送消息时,都会被通知此事件。

{
  "object": "消息",
  "event": "发送新消息",
  "created": 1721109401,
  "设备信息": {
    "id": "61b37a069cba0c15d6c8",
    "电话": "+12345678909",
    "别名": "市场营销",
    "计划": "io-enterprise",
    "版本": 1
  },
  "数据": {
    "id": "048E55811DB6AC1B97F",
    "类型": "文本",
    "流程": "外发",
    "状态": "活跃",
    "确认状态": "已读",
    "发送者": "12345678909@c.us",
    "发送方号码": "+12345678909",
    "接收者": "13245635780@c.us",
    "接收方号码": "+13245635780",
    "日期": "2022-08-19T10:59:08.000Z",
    "时间戳": 1660906748,
    "正文": "你好!",
    "聊天": {
      "id": "1235475685@c.us",
      "名称": "鲍勃 A.",
      "日期": "2023-10-17T13:20:36.000Z",
      "类型": "聊天",
      "状态": "待处理",
      "wa状态": "已移除",
      "状态更新人": "5f71e36254800f533ab791",
      "删除于": "2023-10-18T06:16:15.163Z",
      "首次消息于": "2022-08-19T10:59:08.000Z",
      "最后消息于": "2023-10-17T13:20:36.000Z",
      "最后外发消息于": "2023-10-17T13:20:36.000Z",
      "最后内收消息于": "2023-10-17T13:20:33.000Z",
      "最后反应于": "2023-06-14T19:04:37.000Z",
      "最后反应表情": "😀",
      "最后自动回复": "离开",
      "最后自动回复于": "2023-10-13T08:24:51.000Z",
      "统计": {
        "备注": 0,
        "本地消息数": 51,
        "内收消息": 0,
        "外发消息": 0
      },
      "标签": [
        "7",
        "NEW",
        "标签"
      ],
      "拥有者": {
        "代理": null,
        "分配者": null,
        "分配于": "2023-10-05T10:28:50.350Z",
        "自动分配代理": "5f71e36254800f533ab79148",
        "自动分配于": "2024-07-16T16:51:14.439",
        "前代理": "5f71e36254800f533ab79148",
        "未分配于": null,
        "自动未分配于": "2023-10-17T14:22:17.338Z"
      },
      "联系人": {
        "wid": "13245635780@c.us",
        "名字": "鲍勃 A.",
        "短名": "鲍勃",
        "显示名": "鲍勃",
        "格式化名称": "鲍勃 A.",
        "格式化短名": "鲍勃",
        "同步于": "2024-05-11T21:26:09.145Z",
        "电话": "+13245635780",
        "图像": {
          "url": "https://pps.whatsapp.net/v/t61.24694-24/411911369_3591536647785509_6334106330772289684_n.jpg?ccb=11-4&oh=01_Q5AaIEXiVwMlj4JyYkLIA8aT5uBxvocjEbbOqBC52ccmj-dF&oe=669E512A&_nc_sid=e6ed6c&_nc_cat=101"
        },
        "类型": "用户",
        "更新时间": "2024-06-05T16:37:18.034Z",
        "创建于": null,
        "位置信息": {
          "alpha2": "US",
          "alpha3": "USA",
          "国家电话代码": [
            "+1"
          ],
          "货币": [
            "USD"
          ],
          "emoji": "",
          "ioc": "USA",
          "语言": [
            {
              "代码": "ENG",
              "iso": "en",
              "名称": "英语",
              "本地名": "英语"
            }
          ],
          "名称": "美国",
          "状态": "已分配"
        },
        "元数据": [
          {
            "键": "CRM_CUSTOMER_ID",
            "值": "a1c46535"
          },
          {
            "键": "CRM_LINK",
            "值": "https://crm.company.com/customers/a1c465355"
          }
        ]
      },
      "状态更新于": "2023-10-17T14:22:17.338Z",
      "最后自动回复消息": "3EB02C30928C59CBB4A",
      "链接": {
        "聊天": "/v1/chat/61b37a069cba0c15d6c89757/chats/1235475685@c.us"
      }
    },
    "事件": {
      "发送": {
        "日期": "2022-08-23T08:40:45.519Z"
      }
    },
    "元数据": {
      "rtl": false,
      "包含表情": false,
      "是Gif": false,
      "是星标": false,
      "是群聊": false,
      "是转发": false,
      "是临时消息": false,
      "是通知": false,
      "是直播消息": false,
      "是广播": false,
      "是业务通知": false,
      "是文档": false,
      "是预览": false,
      "是公共安全公告": false,
      "是撤回": false,
      "是未读类型": false,
      "是失败": false,
      "来源": "android",
      "自动回复": null,
      "是首次消息": true,
      "是频道": false,
      "通知名": "",
      "途径": "远程"
    },
    "范围": "消息",
    "Webhook": {
      "状态": "待处理",
      "Webhook同步时间": null
    },
    "链接": {
      "消息": "/v1/chat/61b37a069cba0c15d6c8/messages/048E55811DB6AC1B97FC8614C2F",
      "消息确认": "/v1/chat/61b37a069cba0c15d6c8/messages/048E55811DB6AC1B97FC8614C2F/ackinfo",
      "聊天": "/v1/chat/61b37a069cba0c15d6c8/chats/13245635780@c.us",
      "联系人": "/v1/chat/61b37a069cba0c15d6c8/contacts/13245635780@c.us",
      "聊天消息列表": "/v1/chat/61b37a069cba0c15d6c8/messages?chat=13245635780@c.us",
      "设备": "/v1/devices/61b37a069cba0c15d6c8"
    }
  }
}

🤩 🤖Wassenger 是一个全面的 WhatsApp 通信平台和 API 解决方案。探索超过 100 种以上的 API 使用场景,并在 WhatsApp 上实现自动化操作 通过注册免费试用,几分钟内即可开始](https://wassenger.com/register)

当消息被用户读取或播放时

事件类型: message:out:ack

当此事件发生时,接收方用户阅读或(对于语音消息)播放发送的消息时,该消息即被触发。

注意:该功能仅适用于商务版和企业版。

    {  
      "object": "消息",  
      "event": "消息:out:ack",  
      "created": 1721109401,  
      "ack": "已读",  
      "device": {  
        "id": "61b37a069cba0c15d6c",  
        "phone": "+12345678909",  
        "alias": "营销",  
        "plan": "io-enterprise",  
        "version": 1  
      },  
      "data": {  
        "id": "048E55811DB6AC1B97FC8614C2FF90EB",  
        "type": "文本",  
        "flow": "外发",  
        "status": "活跃",  
        "ack": "已读",  
        "from": "12345678909@c.us",  
        "fromNumber": "+12345678909",  
        "to": "12345678901@c.us",  
        "toNumber": "+12345678909",  
        "date": "2022-08-19T10:59:08.000Z",  
        "timestamp": 1660906748,  
        "body": "嗨,你好!",  
        "chat": {  
          "id": "12345678909@c.us",  
          "name": "Bob A.",  
          "date": "2023-10-17T13:20:36.000Z",  
          "type": "聊天",  
          "status": "待定",  
          "waStatus": "移除",  
          "statusUpdatedAt": "2023-10-17T14:22:17.338Z",  
          "deletedAt": "2023-10-18T06:16:15.163Z",  
          "firstMessageAt": "2022-08-19T10:59:08.000Z",  
          "lastMessageAt": "2023-10-17T13:20:36.000Z",  
          "lastOutboundMessageAt": "2023-10-17T13:20:36.000Z",  
          "lastInboundMessageAt": "2023-10-17T13:20:33.000Z",  
          "lastReactionAt": "2023-06-14T19:04:37.000Z",  
          "lastReactionEmoji": "😀",  
          "lastAutoReply": "离线",  
          "lastAutoReplyAt": "2023-10-13T08:24:51.000Z",  
          "stats": {  
            "notes": 0,  
            "localMessages": 51,  
            "inboundMessages": 0,  
            "outboundMessages": 0  
          },  
          "labels": [  
            "7",  
            "新",  
            "标签"  
          ],  
          "owner": {  
            "agent": null,  
            "assigner": null,  
            "assignedAt": "2023-10-05T10:28:50.350Z",  
            "autoAssignAgent": "5f71e36254800f533ab",  
            "autoAssignedAt": "2024-07-16T16:51:14.439",  
            "previousAgent": "5f71e36254800f533ab",  
            "unassignedAt": null,  
            "autoUnassignedAt": "2023-10-17T14:22:17.338Z"  
          },  
          "contact": {  
            "wid": "12345678909@c.us",  
            "name": "Bob A.",  
            "shortName": "Bob",  
            "displayName": "Bob",  
            "formattedName": "Bob A.",  
            "formattedShortName": "Bob",  
            "syncedAt": "2024-05-11T21:26:09.145Z",  
            "phone": "+12345678909",  
            "image": {  
              "url": "https://pps.whatsapp.net/v/t61.24694-24/411911369_3591536647785509_6334106330772289684_n.jpg?ccb=11-4&oh=01_Q5AaIEXiVwMlj4JyYkLIA8aT5uBxvocjEbbOqBC52ccmj-dF&oe=669E512A&_nc_sid=e6ed6c&_nc_cat=101"  
            },  
            "type": "用户",  
            "updatedAt": "2024-06-05T16:37:18.034Z",  
            "createdBy": null,  
            "locationInfo": {  
              "alpha2": "US",  
              "alpha3": "USA",  
              "countryCallingCodes": [  
                "+1"  
              ],  
              "currencies": [  
                "USD"  
              ],  
              "emoji": "",  
              "ioc": "USA",  
              "languages": [  
                {  
                  "code": "ENG",  
                  "iso": "en",  
                  "name": "英语",  
                  "nativeName": "English"  
                }  
              ],  
              "name": "美国",  
              "status": "分配"  
            },  
            "metadata": [  
              {  
                "key": "CRM_CUSTOMER_ID",  
                "value": "a1c465355"  
              },  
              {  
                "key": "CRM_LINK",  
                "value": "https://crm.company.com/customers/a1c465355"  
              }  
            ]  
          },  
          "statusUpdatedBy": "5f71e36254800f533ab",  
          "lastAutoReplyMessage": "3EB02C30928C59CBB",  
          "links": {  
            "chat": "/v1/chat/61b37a069cba0c15d6/chats/12345678909@c.us"  
          }  
        },  
        "events": {  
          "sent": {  
            "date": "2022-08-23T08:40:45.519Z"  
          }  
        },  
        "meta": {  
          "rtl": false,  
          "containsEmoji": false,  
          "isGif": false,  
          "isStar": false,  
          "isGroup": false,  
          "isForwarded": false,  
          "isEphemeral": false,  
          "isNotification": false,  
          "isLive": false,  
          "isBroadcast": false,  
          "isBizNotification": false,  
          "isDoc": false,  
          "isLinkPreview": false,  
          "isPSA": false,  
          "isRevoked": false,  
          "isUnreadType": false,  
          "isFailed": false,  
          "source": "android",  
          "autoReply": null,  
          "isFirstMessage": true,  
          "isChannel": false,  
          "notifyName": "",  
          "via": "远程端"  
        },  
        "scope": "消息",  
        "webhook": {  
          "status": "待处理",  
          "webhookSyncedAt": null  
        },  
        "links": {  
          "message": "/v1/chat/61b37a069cba0c15d6c/messages/048E55811DB6AC1B97FC8614C",  
          "messageAckinfo": "/v1/chat/61b37a069cba0c15d6c/messages/048E55811DB6AC1B97FC8614C/ackinfo",  
          "chat": "/v1/chat/61b37a069cba0c15d6c/chats/12345678909@c.us",  
          "contact": "/v1/chat/61b37a069cba0c15d6c/contacts/12345678909@c.us",  
          "chatMessages": "/v1/chat/61b37a069cba0c15d6c/messages?chat=12345678909@c.us",  
          "device": "/v1/devices/61b37a069cba0c15d6c"  
        }  
      }  
    }

🤩 🤖Wassenger 是一个完整的通信平台和WhatsApp API解决方案。探索超过100多个API用例并自动化WhatsApp上的任何事情 注册一下免费试用并几分钟内就能开始使用

如果消息发送失败, 🔗

事件:发送失败

当由于目标号码未找到、无效或已过期的媒体内容、或重试次数超出而导致发送的消息无法发送时,将报告此事件。

此事件使用的是由对象组成的数组构成的 JSON 数据负载,因此可以在同一个 HTTP POST 请求中一次发送多条消息,每个通知最多可以包含 25 个项目。

    [  
      {  
        "event": "消息发送失败事件",  
        "date": "2018-12-08T15:01:48.518Z",  
        "entity": "消息",  
        "entityId": "5bf612faa893b00016",  
        "entityUrl": "https://api.wassenger.com/v1/messages/5bf612faa893b00016",  
        "user": "5bd75ab235623e00162",  
        "data": {  
          "id": "5bf612faa893b00016c",  
          "phone": "+12345678909",  
          "status": "failed",  
          "deliveryStatus": "failed",  
          "createdAt": "2022-11-22T02:22:50.955Z",  
          "sentAt": "2022-11-22T02:29:29.254Z",  
          "failedAt": null,  
          "processedAt": "2022-11-22T02:28:54.818Z",  
          "webhookStatus": "pending",  
          "message": "这是一条由API自动发送的消息",  
          "priority": "正常优先级",  
          "schedule": {  
            "enabled": false  
          },  
          "retry": {  
            "count": 1,  
            "lastRetryAt": "2022-11-22T02:25:58.414Z"  
          },  
          "device": {  
            "id": "3bf5d1ff2ff2bd00169",  
            "phone": "+12345678909",  
            "alias": "我的WA消息设备",  
            "description": "设备1,用于客户服务和产品通知",  
            "status": "已验证",  
            "session": {  
              "status": "在线",  
              "无错误": false,  
              "lastSyncAt": "2022-12-02T10:11:16.008Z"  
            },  
            "createdAt": "2022-11-20T09:21:03.898Z",  
            "queue": {  
              "total": 100,  
              "size": 0,  
              "available": 100  
            },  
            "profile": {  
              "name": "+12345678909",  
              "info": null,  
              "lastSyncAt": "2022-11-22T22:14:33.334Z",  
              "imagePath": "/v1/devices/3bf5d1ff2ff2bd00/profile/image"  
            },  
            "links": {  
              "device": {  
                "method": "GET",  
                "url": "https://api.wassenger.com/v1/devices/3bf5d1ff2ff2bd00169"  
              },  
              "scan": {  
                "method": "GET",  
                "url": "https://api.wassenger.com/v1/devices/3bf5d1ff2ff2bd00169/scan"  
              },  
              "sync": {  
                "method": "GET",  
                "url": "https://api.wassenger.com/v1/devices/3bf5d1ff2ff2bd00169/sync"  
              },  
              "health": {  
                "method": "GET",  
                "url": "https://api.wassenger.com/v1/devices/3bf5d1ff2ff2bd00169/health"  
              },  
              "profileImage": {  
                "method": "GET",  
                "url": "https://api.wassenger.com/v1/devices/3bf5d1ff2ff2bd00169/profile/image"  
              },  
              "messages": {  
                "method": "GET",  
                "url": "https://api.wassenger.com/v1/messages?devices=3bf5d1ff2ff2bd00169"  
              }  
            },  
            "stats": {  
              "total": {  
                "sent": 565,  
                "failed": 103,  
                "media": 0,  
                "totalUpstreamSize": 0,  
                "totalDeliveryTime": 13331,  
                "totalUpstreamSpeed": 0  
              },  
              "minutes": {  
                "sent": 4,  
                "failed": 0,  
                "media": 0,  
                "totalUpstreamSize": 0,  
                "totalDeliveryTime": 48,  
                "totalUpstreamSpeed": 0  
              },  
              "quarter": {  
                "sent": 4,  
                "failed": 0,  
                "media": 0,  
                "totalUpstreamSize": 0,  
                "totalDeliveryTime": 48,  
                "totalUpstreamSpeed": 0  
              },  
              "hour": {  
                "sent": 10,  
                "failed": 1,  
                "media": 0,  
                "totalUpstreamSize": 0,  
                "totalDeliveryTime": 114,  
                "totalUpstreamSpeed": 0  
              },  
              "day": {  
                "sent": 10,  
                "failed": 1,  
                "media": 0,  
                "totalUpstreamSize": 0,  
                "totalDeliveryTime": 114,  
                "totalUpstreamSpeed": 0  
              },  
              "week": {  
                "sent": 10,  
                "failed": 1,  
                "media": 0,  
                "totalUpstreamSize": 0,  
                "totalDeliveryTime": 114,  
                "totalUpstreamSpeed": 0  
              },  
              "month": {  
                "sent": 565,  
                "failed": 103,  
                "media": 0,  
                "totalUpstreamSize": 0,  
                "totalDeliveryTime": 13331,  
                "totalUpstreamSpeed": 0  
              },  
              "year": {  
                "sent": 565,  
                "failed": 103,  
                "media": 0,  
                "totalUpstreamSize": 0,  
                "totalDeliveryTime": 13331,  
                "totalUpstreamSpeed": 0  
              }  
            }  
          }  
        }  
      }  
    ]
常见问答
我能在API中创建和管理webhooks(webhook)吗?

当然可以啊。请参考API文档了解更多信息。

我能用本地服务器开发和测试吗?

是的,你可以。为了让Wassenger从互联网与你的本地开发服务器进行通信,你需要创建一个隧道连接。

有许多解决方案可以选择,其中一个是流行的免费工具Ngrok

请看以下关于如何使用Ngrok的教程内容:

我能用免费的 webhook 服务测试吗?

确实,我们建议使用Pipedream的免费服务测试和调试Webhook。

我能在 Zapier 或 Make 上用 webhooks 吗?

当然可以!它们ZapierMake(以前叫 Integromat)非常适合与 webhook 一起使用。

这里有几个教程能帮你开始学习,很有用哦。

什么时候 webhook 事件通知会被认为是成功或失败?

您的 webhook 消费者服务器需要处理来自 HTTP 的请求,并回复成功的状态码(200 到 209 之间)。

以下条件用于确定

  • ✅ HTTP响应状态码必须在200–209之间才能成功。
  • ✅ Webhook服务器必须在30秒内给出有效的回复。
  • ✅ Webhook服务器可以提供一个空响应(204),只要状态码有效就行。
  • ✅ 如果响应状态码无效,请求会在15秒后再次尝试。
  • ✅ 如果响应超过30秒,请求也会在15秒后再次尝试。
  • ✅ 如果同一个webhook事件通知在尝试100次后还是失败的话,将被标记为永久失败。
  • ✅ 如果您的webhook连续多次通知失败,系统将通过电子邮件提醒您。

什么是webhook(一种网络通信机制)的通知超时时间?

我们系统会在每次出现新的消息或设备事件时,向你提供的远程端点URL发送一个HTTP请求。

信息将以JSON格式编码,并作为HTTP正文数据的一部分。

您的服务器必须接受并解析HTTP POST请求的正文,并进行相应的处理。

您的服务器应返回一个200–209的HTTP状态码。否则,视为失败的通知并会重试。

我的数据如何发送到服务器?

系统通过发送带有 JSON 编码的正文的 HTTP(S) POST 请求(内容类型 = 应用程序/JSON)

如何搭建一个 webhook 服务器?

这取决于你使用的编程语言,但有很多选项。

简单来说,你只需要一个能够接收并通过互联网访问的HTTP(S)服务器,它可以处理HTTP POST请求,并确保该服务器可以被互联网访问。

看看下面的资源以了解更多内容。

有没有 webhook 事件的限制?(webhook 事件指通过 webhook 接收的事件)

没有限制。通常,每条收到或发送的WhatsApp消息都会触发一个webhook回调。

你可以接收任意数量的消息。系统将以每秒最多5条消息的速度通知你的webhook端点。

如果你收到消息的速度更快,系统会尽快通知你这些消息。

请注意,由于需要下载和存储文件内容,媒体消息处理起来会比文本消息慢一点。

Webhook事件的发送速度怎么样?

平均来说,您可以在您的WhatsApp号码接收到消息后500到1000毫秒之间收到一个webhook事件。另外,还需加上您的系统处理该webhook事件所需的时间。

注意,这仅适用于纯文本消息。对于多媒体消息,由于需要下载和存储文件,消息处理会稍微慢一些,从大约1秒到最多10秒不等,具体视接收的媒体文件大小而定。

怎么确保 webhook 服务器的安全?

首先,我们强烈建议你使用 HTTPS。

其次,您可以使用带有自定义私钥的URL查询参数。

例如,您可以使用如下的链接格式:<https://mycompany.com/webhooks?key=some-secret-token-here>

每个HTTP请求里包含多少个JSON对象?

这就看 webhook 事件通知到你的服务器了。

对于下面的 webhook 事件,发送到您服务器的 JSON 有效负载是一个单一的对象,而不是一个数组。

  • 新消息:入
  • 消息:出:新
  • 消息:出:新确认

对于以下 webhook 事件类型,每个 HTTP POST 请求最多可以发送 25 个对象。

  • 发送失败

🤩 🤖 Wassenger 提供完整的 WhatsApp API 解决方案。立即注册,即可享受 7 天免费试用,只需几分钟!

如果通知失败了会怎么样?

系统会在每个 webhook 事件中对请求最多重试 50 次,并采用逐步增加等待时间的重试策略。

如果连续失败超过10次,我们会通过邮件通知你,可能存在webhook(网络钩子)集成问题。

如果在一小时内出现超过60次连续失败请求,系统将禁用webhook端点功能,并通过电子邮件通知您此事,以进行手动处理。

一旦您解决了集成方面的问题,就可以重新启用 webhook。

🤩 🤖Wassenger 是一个完整的通信平台和 WhatsApp API 解决方案。探索超过100种API使用场景,并将WhatsApp上的任何操作自动化 注册免费试用并立即开始!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消