Twilio Studio: пересылка журнала разговоров по SMS на электронную почту - PullRequest
0 голосов
/ 24 сентября 2018

Я использую SMS studio, у меня есть быстрый чат-чат с входящими SMS-сообщениями, и я хотел бы переслать журнал разговоров по электронной почте после его завершения.Я написал функцию, которая использует API SendGrid для пересылки SMS на электронную почту .Он работает независимо - то есть, если я настрою номер телефона для немедленного запуска функции при поступлении текста, он отправит один SMS-ввод по электронной почте.

Однако я бы хотел добавить функцию в конец потока Twilio Studio, чтобы он отправлял мне по электронной почте весь журнал разговора, когда он закончится.Как только я добавляю функцию в конец студийного процесса, она перестает работать, и я получаю уведомление об ошибке.

Вот код в функции:

const got = require('got');

exports.handler = function(context, event, callback) 
{
    const requestBody = {
    personalizations: [{ to: [{ email: context.TO_EMAIL_ADDRESS }] }],
    from: { email: context.FROM_EMAIL_ADDRESS },
    subject: `New SMS message from: ${event.From}`,
    content: [
      {
        type: 'text/plain',
        value: event.Body
      }
    ]
}

  got.post('https://api.sendgrid.com/v3/mail/send', {
    headers: {
      Authorization: `Bearer ${context.SENDGRID_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(requestBody)
  })
    .then(response => {
      let twiml = new Twilio.twiml.MessagingResponse();
      callback(null, twiml);
    })
    .catch(err => {
      callback(err);
    });

};`

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

Ошибка - 81017
Ошибка при ответе функции Twilio
Произошла ошибка в ответе от функции Twilio, подключенной к потоку Studio.
Возможные причины
Время ожидания вашей функции перед ответом
Ваша функция возвратила ответ об ошибке
Возможные решения
Ваша функция должна содержать обратный вызов.
Убедитесь, что вы поместили обратный вызов функции (err, response) в свой код функции.
Есливы используете обещание JavaScript, убедитесь, что обратный вызов вызывается как в блоках success, так и в catch.
Ваша функция ответила с ошибкой.

Мне трудно понять, в чем ошибка.У кого-нибудь есть советы?

Спасибо!

1 Ответ

0 голосов
/ 24 сентября 2018

Джарод из Твилио.Я на самом деле написал приложение, очень похожее на это.Код выглядит хорошо для меня.Часто, когда люди сталкиваются с ошибкой такого рода, это происходит из обещания SendGrid.Вот два совета:

  1. На самом деле вы можете регистрировать ошибки и просматривать ответы от функции, если вы оставите функцию открытой во время тестирования.Логи будут внизу.Они обычно имеют больше информации.
  2. Убедитесь, что вы используете адрес исходящей электронной почты, который был внесен в белый список в вашей учетной записи SendGrid Whitelabel - Sendgrid
  3. Убедитесь, что вы добавили переменные среды в конфигурацию функций, Конфигурация функций Twilio - Консоль

Надеюсь, это поможет!Если у вас есть вопросы, пишите на support@twilio.com с дополнительными вопросами.

...