I am trying to return a response generated from an API call via whatsapp through the use of the Whatsapp business cloud API and a webhook. I can log the message and it is correct however when I return it by using the webhook it does not then get sent in Whatsapp. Here is my code:
app.post("/webhook", (req, res) => {
// Parse the request body from the POST
let body = req.body;
// Check the Incoming webhook message
console.log(JSON.stringify(req.body, null, 2));
// info on WhatsApp text message payload: https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/payload-examples#text-messages
if (req.body.object) {
if (
req.body.entry &&
req.body.entry[0].changes &&
req.body.entry[0].changes[0] &&
req.body.entry[0].changes[0].value.messages &&
req.body.entry[0].changes[0].value.messages[0]
) {
let phone_number_id =
req.body.entry[0].changes[0].value.metadata.phone_number_id;
let from = req.body.entry[0].changes[0].value.messages[0].from; // extract the phone number from the webhook payload
let msg_body = req.body.entry[0].changes[0].value.messages[0].text.body; // extract the message text from the webhook payload
axios({
method: "POST",
url: API_URL,
data: {
id: phone_number_id,
question: msg_body,
email: "N/A",
conversation: [],
save: true,
resolved: "N/A",
ads: 0,
},
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.API_KEY,
},
})
.then(apiResponse => {
if (apiResponse.status !== 200) {
throw new Error(`Request failed with status ${apiResponse.status}`);
}
return apiResponse.data;
})
.then(responseData => {
console.log(responseData);
res.status(200).json({
message: responseData.answer,
});
})
.catch(error => {
console.error(error);
res.status(500).json({
message: "An error occurred while chatting.",
});
});
}
}
});
As you can see I am console logging the responseData
and it is showing me a good response. But as mentioned when I return it it does not then get sent to the whatsapp phone number that it received the initial post request from.
I am trying to achieve this whole process by using Meta For Developers and their docs for the Whatsapp business Cloud API but can't figure it out.