При использовании Twilio и облачных функций Google запрос имеет неверный тип контента - PullRequest
0 голосов
/ 30 октября 2019

Я следую этому уроку 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 #, он попадает на эту конечную точку, но я получаю следующую ошибку:

Запрос имеет неверный тип содержимого. application / x-www-form-urlencoded

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

1 Ответ

3 голосов
/ 30 октября 2019

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

...