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
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742308842a4419483.html
评论列表(0条)