Fix webhook update: send form fields via request; keep SDK/phone fallbacks

This commit is contained in:
Peter Steinberger
2025-11-24 15:37:03 +01:00
parent 13355b11d8
commit a566ba442b

View File

@@ -781,7 +781,27 @@ async function updateWebhook(
method: "POST" | "GET" = "POST", method: "POST" | "GET" = "POST",
) { ) {
// Point Twilio sender webhook at the provided URL. // Point Twilio sender webhook at the provided URL.
const requester = client as unknown as TwilioRequester;
const clientTyped = client as unknown as TwilioSenderListClient; const clientTyped = client as unknown as TwilioSenderListClient;
// 1) Raw request (Channels/Senders) with explicit form fields (canonical for WA senders)
try {
await requester.request({
method: "post",
uri: `https://messaging.twilio.com/v2/Channels/Senders/${senderSid}`,
form: {
CallbackUrl: url,
CallbackMethod: method,
},
});
console.log(success(`✅ Twilio sender webhook set to ${url}`));
return;
} catch (err) {
if (globalVerbose)
console.error("channelsSenders request update failed, will try client helpers", err);
}
// 2) SDK helper fallback (if supported by this client)
try { try {
if (clientTyped.messaging?.v2?.channelsSenders) { if (clientTyped.messaging?.v2?.channelsSenders) {
await clientTyped.messaging.v2.channelsSenders(senderSid).update({ await clientTyped.messaging.v2.channelsSenders(senderSid).update({
@@ -793,9 +813,10 @@ async function updateWebhook(
} }
} catch (err) { } catch (err) {
if (globalVerbose) if (globalVerbose)
console.error("channelsSenders update failed, will try phone number fallback", err); console.error("channelsSenders helper update failed, will try phone number fallback", err);
} }
// 3) Incoming phone number fallback (works for many WA senders)
try { try {
const phoneSid = await findIncomingNumberSid(clientTyped, url); const phoneSid = await findIncomingNumberSid(clientTyped, url);
if (phoneSid) { if (phoneSid) {