我正在使用 Twilio Functions (node.js) 将所有传入文本加载到 AirTable。我正在使用 2 张桌子 -
- “接收文本”,包含“入站文本日期”、“入站文本内容”和“UID”列。
- “用户”列“UID”和电话号码(“您的号码”)。
收到短信时,我只有电话号码。所以我尝试使用带有电话号码的FilterByFormula 从“用户”表中检索用户的UID。
这是我正在运行的代码 -
exports.handler = function(context, event, callback) {
var Airtable = require('airtable');
var base = new Airtable({apiKey: context.AIRTABLE_API_KEY}).base('app######');
var phone = event.From;
var format_phone = // format to +1 (###) ###-####
base('Users').select({
filterByFormula: `Your Number = "${format_phone}"`,
view: "Grid view"
}).eachPage(function page(records, fetchNextPage) {
records.forEach(function(record) {
console.log(record.id);
});
fetchNextPage();
}, function done(err) {
if (err) { console.error(err); return; }
});
inputbase = 'Receive Text';
message = {
'UID' : ['rec#######'],
'Inbound Text Date' : Date.now(),
'Inbound Text Content' : event.Body,
};
base(inputbase).create(message, function(err, record) {
if (err) { console.error(err); return; }
console.log(record.getId());
callback(null, message);
});
};
现在进行测试,UID 是硬编码的,它工作正常。我不确定如何将来自 filterByFormula 的 UID 获取到变量中,或者直接获取到消息变量中。
UID 和电话号码都是“用户”中的唯一值,所以我不希望收到超过 1 条记录。
谢谢。