【问题标题】:Twilio Functions work individually but they do not work correctly when I use them in Studio FlowsTwilio 函数单独工作,但当我在 Studio Flows 中使用它们时它们无法正常工作
【发布时间】:2022-01-23 03:07:05
【问题描述】:

我创建了几个可以自己正常工作的函数。

功能 #1 - 短信到电子邮件。这会在 Twilio 号码收到短信后发送一封电子邮件:

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);
      });
};

功能 #2 - 转发短信。这会将在 Twilio 号码收到的短信转发到两个手机号码:

exports.handler = function (context, event, callback) {
  const twiml = new Twilio.twiml.MessagingResponse();
  twiml.message(`From: ${event.From}. Body: ${event.Body}`, {
    to: context.ASDA_PHONE_NUMBER,
  });
  twiml.message(`From: ${event.From}. Body: ${event.Body}``, {
    to: context.MY_PHONE_NUMBER,
  });
  callback(null, twiml);
};

当直接链接到号码作为唯一响应传入 SMS 的服务或功能时,这两个功能都可以正常工作。

但是,当我在带有运行功能小部件的 Studio Flow 中使用这些功能时,它们无法按预期工作。功能 #1 根本不起作用。函数 #2 部分工作,但似乎 event.From 和 event.Body 变量未定义,手机收到的 SMS 消息文本显示为“From: undefined. Body: undefined”。

这是带有两个 Run Function 小部件的 Studio Flow 结构:

Structure of the Studio Flow with a Run Function widget for each function

似乎上下文数据,如 context.MY_PHONE_NUMBER 可以访问这些功能。否则第二个功能将无法转发短信。但是,函数似乎无法访问事件数据,例如 event.From。

我猜测函数(上下文、事件、回调)中的“事件”参数没有被 Studio Flow 传递给函数,我需要将此信息作为参数传递,但我还没有找到方法这个。

【问题讨论】:

    标签: email twilio sms


    【解决方案1】:

    在运行函数小部件中,您可以添加参数。这些将显示在函数中的 event 对象上。

    您可以将 Liquid 模板语法用于 Run Function 小部件中预期键的值

    【讨论】:

    • 您好,谢谢。我知道我可以添加参数,正如我在问题中提到的,我猜我需要将这些值作为参数传递。我的问题是如何正确地做到这一点。 Studio Flow 是否看到“事件”变量,例如 event.From?
    【解决方案2】:

    Twilio 支持帮助我解决了这个问题。 我在函数中添加了以下函数参数:

    功能 #1: 键:主体
    值:{{trigger.message.Body}}

    功能 #2: 关键字:发件人
    值:{{trigger.message.From}}

    这样,这两个功能都可以在流程中完美运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多