首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Twilio Autopilot:如何从Airtable中提取数据并将结果返回给用户?

Twilio Autopilot:如何从Airtable中提取数据并将结果返回给用户?
EN

Stack Overflow用户
提问于 2019-02-03 06:01:45
回答 1查看 387关注 0票数 0

我在第一个Autopilot任务中使用Collect从用户那里获取日期(即2019年1月31日)。然后,我尝试使用该变量(date)在Airtable数据库中搜索该特定行。我希望将该行的结果返回给用户(“在1月31日,主剧院正在播放这部电影,另一个大区正在播放...)。

我的Airtable Get代码如下,但我不确定如何将返回的数据分配给可以读回给用户的变量。

代码语言:javascript
运行
复制
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将发回的输出:

代码语言:javascript
运行
复制
{
    "id": "recbGHAQopLQdCOHK",
    "fields": {
        "Date": "2019-02-02",
        "Main Theater": "Star Wars",
        "Other Theater": "Avengers"
    },
    "createdTime": "2019-02-02T21:21:48.000Z"
}
EN

回答 1

Stack Overflow用户

发布于 2019-02-03 09:36:43

我是Twilio的布道者。

如果你的Airtable Get代码还不存在,它应该放在一个Twilio函数中(which supports Node.js)!它指向一个自动驾驶任务,它的actions代码类似于:

代码语言:javascript
运行
复制
{
    "actions": [
        {
            "redirect": {
                "uri": "https://your-twilio-function-path.twil.io/airtable-or-whatever-if-this-is-your-path"
            }
        }
    ]
}

然后在你的Twilio函数/Airtable Get代码中,你应该修改你的Twilio Response对象来接受所有的请求来源,并让它看起来像这样:

代码语言:javascript
运行
复制
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请求时使用了几乎完全相同的代码,我将调用返回的一些数据保存在一个变量中,因此应该是相似的。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54497948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档