使用 Nodejs 从 WhatsApp API 接收来自 WhatsApp 的消息

问题描述 投票:0回答:0

我正在尝试使用节点 js 接收 WhatsApp 消息。每当我尝试从 JSON 中获取

entry[0]
时,都会出现错误“无法读取未定义的属性”。

这是我的 Node Js 代码库

const fs = require("fs");
const myConsole = new console.Console(fs.createWriteStream("./logs.txt"));

const VerfiToken = (req, res)=>{
    try {
        var accessToken = "QWRUEVD67256EGGHD67476GGH676HJH";
        var token = req.query["hub.verify_token"];
        var challenge = req.query["hub.challenge"];

        // CONDITIONS BEFORE VERIFICATION
        if(challenge != null && token != null && token == accessToken){
            res.send(challenge);
        } else {
            res.status(400).send();
        }
    } catch (e) {
        res.status(400).send();
    }
}

// FUNCTION TO RECEIVE MESSAGE FROM WHATSAPP
const ReceiveMessage = (req, res) =>{
    try {
        var entry = (req.body["entry"])[0];
        var changes = (entry["changes"])[0];
        var value = changes["value"];
        var messageObject = value["messages"];

        myConsole.log("messageObject");
        console.log(req.body);

        res.send("EVENT_RECEIVED"); //ALWAYS RETURN THIS
    } catch (e) {
        myConsole.log(e);
        res.send("EVENT_RECEIVED"); //ALWAYS RETURN THIS
    }
}

module.exports = {
    VerfiToken,
    ReceiveMessage
}

这是 WhatsApp API 对象

     {
        "object": "whatsapp_business_account",
        "entry": [
          {
            "id": "106393322156626",
            "changes": [
              {
                "value": {
                  "messaging_product": "whatsapp",
                  "metadata": {
                    "display_phoneNumber": null,
                    "phone_number_Id": "101935022611761"
                  },
                  "contacts": [
                    {
                      "profile": {
                        "name": "User Name"
                      },
                      "wa_id": "51123456789"
                    }
                  ],
                  "messages": [
                    {
                      "from": "51123456789",
                      "id": "wamid.HBgLNTE5NDM2NjI5NjQVAgASGBQzQUNCODUzN0U1QkU5MkZENTFBQwA=",
                      "Timestamp": "1660362642",
                      "type": "text",
                      "text": {
                        "body": "hola ..."
                      },
                      "interactive": null,
                      "image": null,
                      "audio": null,
                      "video": null,
                      "document": null,
                      "sticker": null,
                      "location": null,
                      "contacts": null,
                      "system": null
                    }
                  ],
                  "errors": null,
                  "statuses": null
                },
                "field": "messages"
              }
            ]
          }
        ]
      }

所以目标是访问对象中的

entry
值,上面的代码给我一个错误。

node.js whatsapp
© www.soinside.com 2019 - 2024. All rights reserved.