Продолжайте получать сообщение об ошибке Twilio 90100 при выполнении, но результаты работают - PullRequest
0 голосов
/ 02 марта 2020

Я не программист, поэтому, пожалуйста, прости меня. Но я потратил часы на изучение топи c сбора информации с помощью Twilio AutoPilot и разместил эти данные в Airtable, после чего я заставлю Zapier кое-что сделать с этими данными. Сегодня у меня наконец был прорыв, и теперь я могу отправлять данные из звонка или текста в Airtable. Единственный способ заставить окончание работать - отправить вызов или текст в Studio, чтобы завершить вызов sh. Кажется, все работает с точки зрения конечного пользователя, но я получаю ошибку 90100 от Twilio. Я уверен, что мне просто не хватает одной строки кода, чтобы это сработало, и я нахожусь в конце своей веревки.

    {
    "actions": [
        {
            "say": "Okay lets get you a new appointment. I just need you to answer a few questions."
        },
        {
            "collect": {
                "name": "member",
                "questions": [
                    {
                        "question": "Please tell me your first name.",
                        "name": "name",
                        "type": "Twilio.FIRST_NAME"
                    },
                    {
                        "question": "Thanks, and what is your email address?",
                        "name": "email",
                        "type": "Twilio.EMAIL"
                    }
                ],
                "on_complete": {
                    "redirect": "task://complete_booking"
                }
            }
        }
    ]
}

Затем у меня есть другая настройка задачи для перенаправления в функцию Twilio , Это, вероятно, излишне, но это то, что я нашел в исследовании.

    {
        "actions": [
            {
                "redirect": {
                    "method": "POST",
                    "uri": "https://TWILIO_FUNCTION_URL/atable_post"
                }
            }
        ]
    }

Тогда функция выглядит следующим образом. Имейте в виду, это правильная публикация в airtable.

exports.handler = function(context, event, callback) {

    let memory = JSON.parse(event.Memory);
    let name = memory.twilio.collected_data.member.answers.name.answer;
    let email = memory.twilio.collected_data.member.answers.email.answer;
    console.log(memory);
    let member = {
        name : memory.twilio.collected_data.member.answers.name.answer,
        email : memory.twilio.collected_data.member.answers.email.answer,
        date : Date.now()
    };

    var Airtable = require("airtable");
    var base = new Airtable({apikey: context.AIRTABLE_API_KEY}).base("AIRTABLE_ID");

    base("Members1").create(member, function(err, record) {
        if (err) { console.error(err); return; }
        console.log(record.getId());
        callback(null, member);
    });

};

В этот момент звонок завис, поэтому я перенаправил его в Studio Flow, который работает, и звонок завершается с ответом, который я дал это до завершения разговора. Опять же, все работает нормально, но я получаю следующую ошибку от twilio, и я не знаю, как ее устранить.

Недопустимые действия автопилота JSON: недопустимое действие автопилота

Любая помощь будет принята с благодарностью. Спасибо!

1 Ответ

0 голосов
/ 02 марта 2020

Отличная работа, Джеймс! Похоже, проблема в том, что перенаправление на вашу функцию Twilio не возвращает ожидаемый JSON ответ действия для выполнения.

Автопилот - перенаправление https://www.twilio.com/docs/autopilot/actions/redirect

Перенаправление на URL-адреса При перенаправлении на URL-адрес Redirect выполнит HTTP-обратный вызов в ваше приложение и будет ожидать действий автопилота JSON в качестве ответа . Запрос будет содержать всю информацию диалога. Это пример динамического действия c, поскольку JSON отображается динамически с помощью URL-адреса или собственной конечной точки.

Можно ли изменить функцию Twilio, чтобы она возвращала допустимое действие JSON для автопилота, который устанавливает возвращаемые данные, если необходимо, с помощью действия Помните , к которому вы можете получить доступ из Studio?

...