Fix webhook update: send form fields via request; keep SDK/phone fallbacks
This commit is contained in:
23
src/index.ts
23
src/index.ts
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user