我在第一个自动驾驶任务中使用``收集''从用户那里获取日期(即2019年1月31日)。然后,我尝试使用该变量(日期)在Airtable数据库中搜索该特定行。我想将该行的结果返回给用户(“ 1月31日,主剧院正在播放这部电影,另一剧院正在播放...)。
下面是我的Airtable Get代码,但是我不确定如何将返回的数据分配给我可以读回给用户的变量。
exports.handler = function(context, event, callback) {
var Airtable = require('airtable');
var base = new Airtable({apiKey:
'apikey'}).base('basekey');
base('Blockouts').find('recbGHAQopLQdCOHK', function(err, record) {
if (err) { console.error(err); return; }
console.log(record);
});
}
这是Airtable将发回的输出:
{
"id": "recbGHAQopLQdCOHK",
"fields": {
"Date": "2019-02-02",
"Main Theater": "Star Wars",
"Other Theater": "Avengers"
},
"createdTime": "2019-02-02T21:21:48.000Z"
}
答案 0 :(得分:2)
这里是Twilio的传播者。
如果您的Airtable Get代码尚不存在,则应使用Twilio函数(which supports Node.js)!指向其actions
代码具有类似以下内容的自动驾驶任务:
{
"actions": [
{
"redirect": {
"uri": "https://your-twilio-function-path.twil.io/airtable-or-whatever-if-this-is-your-path"
}
}
]
}
然后在Twilio函数/ Airtable Get代码中,应修改Twilio Response对象以接受所有请求的来源,并使它们看起来像这样:
exports.handler = function(context, event, callback) {
let response = new Twilio.Response();
let headers = {
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json"
};
var responseObject = {"actions":[
{ "say": "Try again" }
]};
response.setHeaders(headers);
var Airtable = require('airtable');
var base = new Airtable({apiKey: 'apikey'}).base('basekey');
base('Blockouts').find('recbGHAQopLQdCOHK', function(err, record) {
if (err) { console.error(err); return; }
console.log(record);
}).then(res => {
var date = res.data[0].fields.date;
responseObject = {"actions":[
{ "say": date }
]};
callback(null, responseObject);
});
};
我尚未使用您的Airtable输出(程序员的著名遗言)测试此代码,但在向API提出Axios请求时使用了几乎完全相同的代码,其中我将该调用返回的一些数据保存到了变量,因此应该相似。
希望这会有所帮助。