currently I have a node js server which Listens for incoming messages and sending a response to the client based on his msg content .

  • I have a Verified Business account, Whatsapp business account + phone number set and a webhook set for my node js server

I am now trying to expand it and to Listen for 2 whatsapp numbers . meta allows to set only one webhook per "app" which I think there is my problem . after creating a new app , and associated it to the same business account which has 2 whatsapp phone numbers , I still Can't listen to the 2nd number .

This is the current code which runs :

const RecievedMessage = (req,res)=> {     try {         var entry = (req.body["entry"])[0];         var changes = (entry["changes"])[0];         var value = changes["value"];         var messageObject = value["messages"];         if (typeof messageObject != "undefined"){             var messages = messageObject[0];             var number = messages["from"];             var msgid = messages["id"];             var text = getTextUser(messages); // getting the usr message             if(text != ""){               processMessage.Process(text,number,msgid);              }         }         myConsole.log(text);         res.send("EVENT_RECEIVED")     }catch(error) {         myConsole.log(error);         res.send("EVENT_RECEIVED")     } }     

for the webhooks I set 2 different endpoints one on each app: /whatsapp /whatsapp2

the verify function :

 const VerifyToken = (req,res) => {     try {         const keyValuePairs = req._parsedOriginalUrl.query.split('&');         const parsedValues = {};                  keyValuePairs.forEach(pair => {             const [key, value] = pair.split('=');             parsedValues[key] = value;         });                       var accessToken = 'token';              var token = parsedValues['hub.verify_token'];//req._parsedOriginalUrl.query["hub.verify_token"];              var challenge = parsedValues['hub.challenge'];//req._parsedOriginalUrl.query["hub.challenge"]                       if(challenge !=null && token != null && token == accessToken) {                 res.send(challenge);              } else {                  res.status(400).send();              }                     } catch(error) {             res.status(400).send();            } }    

express routes

app.get('/whatsapp',async(req,res)=> {    try { const keyValuePairs = req._parsedOriginalUrl.query.split('&'); const parsedValues = {}; keyValuePairs.forEach(pair => {     const [key, value] = pair.split('=');     parsedValues[key] = value; }); const hubMode = parsedValues['hub.mode']; const hubChallenge = parsedValues['hub.challenge']; const hubVerifyToken = parsedValues['hub.verify_token'];      var accessToken = 'token';      var token = parsedValues['hub.verify_token'];      var challenge = parsedValues['hub.challenge'];      if(challenge !=null && token != null && token == accessToken) {         res.send(challenge);      } else {          res.status(400).send();      }    } catch(error) {     res.status(400).send();    } })     
 app.get('/whatsapp2',async(req,res)=> {    try { const keyValuePairs = req._parsedOriginalUrl.query.split('&'); const parsedValues = {}; keyValuePairs.forEach(pair => {     const [key, value] = pair.split('=');     parsedValues[key] = value; }); const hubMode = parsedValues['hub.mode']; const hubChallenge = parsedValues['hub.challenge']; const hubVerifyToken = parsedValues['hub.verify_token'];      var accessToken = 'token';      var token = parsedValues['hub.verify_token'];      var challenge = parsedValues['hub.challenge'];//req._parsedOriginalUrl.query["hub.challenge"]      if(challenge !=null && token != null && token == accessToken) {         res.send(challenge);      } else {          res.status(400).send();      }    } catch(error) {     res.status(400).send();    } })   

I am sure I'm not the first one which need a multi-phone number setup for a Whatsapp chatbot Thanks everyone , cheers

Tag:whatsapp, facebook-graph-api

Add a new comment.