При отправке SMS в Twilio Twilio отправляет несколько запросов на указанный URL-адрес, чтобы сообщить статус доставки этого SMS через веб-перехватчики. Я хочу сделать этот обратный вызов асинхронным, поэтому я разработал облачную функцию, которая отправляет представление запроса в облачную задачу, которая сама достигает выделенной конечной точки моего приложения, которая воссоздает и моделирует запрос Twilio внутренне.
Твилио подписывает свои запросы, используя:
- секретный ключ моей учетной записи Twilio
- абсолютный URL, по которому он обращается
- и тело его запроса
Итак, на моем сервере я должен знать, к какой конечной точке Twilio обратилась изначально. Я хочу сделать это внутри облачной функции, и я хочу сделать это программно, потому что этот асинхронный веб-перехватчик также используется, когда люди отвечают на SMS.
Текущий URL-адрес моего веб-перехватчика имеет следующий формат:
https://<location>-<project>.cloudfunctions.net/<cloud function name>/<some SMS uuid>
Текущая полезная нагрузка, отправляемая в мою облачную задачу, следующая:
absoluteUri: req.protocol + '://' + req.hostname + req.originalUrl,
relativeUri: req.originalUrl,
queryParams: req.query,
headers: req.headers,
body: req.body,
Проблема в том, что req.originalUrl
не содержат полного URI, мой absoluteUri
в настоящее время:
https://<location>-<project>.cloudfunctions.net/<some SMS uuid>
Итак, вот мой вопрос: есть ли способ получить имя внутри облачной функции программно?