我創建了幾個可以自己正常作業的函式。
功能#1 - SMS 到電子郵件。這會在收到 Twilio 號碼的 SMS 后發送一封電子郵件:
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 號碼收到的傳入 SMS 轉發到兩個手機號碼:
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”。
這是帶有兩個運行函式小部件的 Studio Flow 的結構:
Studio Flow 的結構,每個函式都有一個運行函式小部件
似乎背景關系資料,如 context.MY_PHONE_NUMBER 是可訪問的功能。否則第二個功能將無法轉發短信。但是,函式似乎無法訪問事件資料,例如 event.From。
我猜測函式(背景關系、事件、回呼)中的“事件”引數沒有被 Studio Flow 傳遞給函式,我需要將此資訊作為引數傳遞,但我還沒有找到一種方法來做到這一點。
uj5u.com熱心網友回復:
在運行函式小部件中,您可以添加引數。這些是將顯示event在函式中的物件上的內容。
您可以將 Liquid 模板語法用于 Run Function 小部件中預期鍵的值
uj5u.com熱心網友回復:
Twilio 支持幫助我解決了這個問題。我在函式中添加了以下函式引數:
功能1:重點:車身
值:{{trigger.message.Body}}
功能#2:鍵:從
值:{{trigger.message.From}}
這樣,這兩個功能都可以在流程中完美運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/393849.html
