Хобрук: Ваш путь к мастерству в программировании

Запрос имеет неверный тип содержимого при использовании функций Twilio и Google Cloud.

Я следую этому руководству Twilio о том, как отвечать на SMS-сообщения с помощью моего приложения: https://www.twilio.com/docs/sms/tutorials/how-to-receive-and-reply-node-js

В руководстве предполагается, что вы используете Express, но я делаю это с помощью облачной функции, поэтому мой код выглядит немного иначе:

exports.sms = functions.https.onCall((req: any, res: any) => {
    const twiml = new MessagingResponse();

    if (req.body.Body === 'hello') {
        twiml.message('Hi!');
    } else if (req.body.Body === 'bye') {
        twiml.message('Goodbye');
    } else {
        twiml.message(
            'No Body param match, Twilio sends this in the request to your server.',
        );
    }

    res.writeHead(200, { 'Content-Type': 'text/xml' });
    res.end(twiml.toString());
});

Когда я пишу свой Twilio #, он попадает в эту конечную точку, но я получаю следующую ошибку:

Запрос имеет неверный Content-Type. приложение / x-www-form-urlencoded

Как мне обойти это?


  • Откуда возникает ошибка? (библиотека / пакет) Какая исходная инструкция выполняется? Как выглядит входящее сообщение? Как выглядит определение облачной функции? 30.10.2019

Ответы:


1

Похоже, вы путаете функции вызываемого типа и обычные Функции типа HTTP. Пожалуйста, прочтите документацию, чтобы понять разницу. Вызываемые функции предназначены для вызова непосредственно из вашего мобильного приложения с помощью предоставленного клиентского SDK. Они предоставляют два аргумента: объект входных данных и контекст. Вызываемые объекты НЕ предоставляют "req" и "res". Если вы хотите контролировать ответ, вам следует использовать обычную функцию HTTP с onRequest вместо onCall.

30.10.2019
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..