首页 > 解决方案 > 记录传入消息 twilio node.js

问题描述

我有这个基本功能,可以将消息发送回给我的 Twilio 号码发送消息的用户。

因此,如果该号码1234567890向我的 twilio 号码发送一条消息,它会向1234567890. 但是,我希望能够记录用户发送给我的内容。因此,如果他们发送给我hi,那么我可以使用它来查询我的数据库并向他们发送消息。

这是我的功能:

app.post('/sms', (req, res) => {
const twiml = new MessagingResponse();

twiml.message('The Robots are coming! Head for the hills!');

res.writeHead(200, {'Content-Type': 'text/xml'});
res.end(twiml.toString());
})

标签: javascriptnode.jstwilio

解决方案


Twilio 开发人员布道者在这里。

看起来您正在使用 Node.js 和 Express 来接收来自 Twilio 的传入 webhook。当 Twilio 发送此 webhook 时,它包含许多描述您收到的消息的参数。请求是以application/x-www-form-urlencoded格式发出的,因此您需要设置 Express 以解析请求正文中的这些参数。您可以使用内置的Expressurlencoded中间件来做到这一点:

const express = require('express');
const app = express();

app.use(express.urlencoded());

成功解析请求后,您可以从req.body. 例如,发送消息的号码是 ,消息req.body.From的正文是req.body.Body。例如:

app.post('/sms', (req, res) => {
  const { Body, From } = request.body;
  console.log(`Message from: ${From}: ${Body}`);

  const twiml = new MessagingResponse();

  twiml.message('The Robots are coming! Head for the hills!');

  res.writeHead(200, {'Content-Type': 'text/xml'});
  res.end(twiml.toString());
});

推荐阅读