如何在 Node.js 中获取 Twilio SMS 正文文本

How to get a Twilio SMS body text in Node.js

本文关键字:Twilio SMS 正文 文本 获取 Node js      更新时间:2023-09-26

我正在做一个与Twilio集成的副项目。这是一个运行在快乐.js框架上的 Node.js 应用程序。

我使用 Twilio

设置了应用,以便当我向我的 Twilio 号码发送短信时,Twilio 会从我的应用路由接收请求,并在响应中给我发一条静态消息。

我遇到的问题是从用户的文本中获取短信正文。假设我用类似banana这样的单词向 Twilio 号码发送短信,我希望能够从请求中检索它,以便我可以基于它获得动态消息。

我已经尝试了request.Bodyrequest.message,以及其他一些事情,但我似乎无法将用户的文本检索到Twilio号码。我浏览了Twilio的文档,似乎无法弄清楚。我在 Twilio 上看到了这个 PHP 关键字教程,它看起来很有前途,但即使像该教程中那样访问request.Body似乎也根本不起作用。

有谁知道如何从用户发送的Twilio短信中获取文本正文?感谢任何和所有的帮助

有了 happy,如果你想在运行handler之前将所有request体读入内存,你需要设置payload配置:

server.route({
    config: {
        payload: {
            output: 'data'
        }
    },
    method: 'POST',
    path: '/textMessage',
    handler: function (request, reply) {
        console.log('Body was', request.payload.toString()); 
        reply('...');
    }
});

来自快乐的 API 文档:

"data" - 传入的有效负载完全读入内存。如果解析为 true,有效负载基于解析(JSON,表单解码,多部分) "内容类型"标头。如果解析为假,则原始缓冲区为 返回。这是默认值,除非代理处理程序 使用。

更多选项在这里: http://hapijs.com/api#route-options

在尝试了不同的方法从 Twilio 检索请求有效负载后,我发现 Twilio 请求正文可以通过 request.url.query 访问,因此,文本的Body可以通过 request.url.query.Body 检索。感谢您@MattHarrison的帮助!