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

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

我正在做一个与 Twilio 集成的副项目。它是 Node.js 应用 运行 基于 Hapi.js 框架。

我使用 Twilio 设置了该应用程序,这样当我向我的 Twilio 号码发送短信时,Twilio 会从我的应用程序的路由中获取请求,并在响应中使用静态消息给我回短信。

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

我尝试了 request.Bodyrequest.message 等多种方法,但我似乎无法将用户的文本检索到 Twilio 号码。我查看了 Twilio 的文档,但似乎无法弄明白。我在 Twilio 上看到 this PHP keyword tutorial 看起来很有希望,但即使像该教程中那样访问 request.Body 似乎也根本不起作用。

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

使用 Hapi,如果您想在 运行 您的 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('...');
    }
});

来自 Hapi API 文档:

'data' - the incoming payload is read fully into memory. If parse is true, the payload is parsed (JSON, form-decoded, multipart) based on the 'Content-Type' header. If parse is false, the raw Buffer is returned. This is the default value except when a proxy handler is used.

此处有更多选项:http://hapijs.com/api#route-options

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