【发布时间】:2018-06-29 06:01:56
【问题描述】:
我正在尝试设置我们的 twilio 应用程序以在收到短信时响应客户端。我创建了一个发送初始文本的 js 文件和另一个在收到回复时发送响应的 js 文件。
然后我从我的机器上启动了初始服务器,然后启动了 ngrok http 1337 我将来自 ngrok 的转发 url 复制并粘贴到我的 twilio 仪表板上的消息传递 webhook 中,并将“/sms”添加到 url 的末尾。
当我回复文本时,我没有收到回复,并且可以在 ngrok 中看到我收到“502 Bad Gateway error”。
const accounSid = 'xxxxxxxxxxxxx'
const authToken = 'xxxxxxxxxxxxx'
const client = require('twilio')(accounSid, authToken)
client.messages.create({
to: '+13101234567',
from: '+13109876543',
body: 'test'
})
.then((message) => {
console.log(message.sid)
})
const http = require('http')
const express = require('express')
const MessagingResponse = require('twilio').twiml.MessagingResponse
const app = express()
app.post('/sms', (req,res) => {
const twiml = new MessagingResponse()
twiml.message('testing 123')
res.writeHead(200, {'Content-Type': 'text/xml'})
res.end(twiml.toString())
})
http.createServer(app).listen(1337, () => {
console.log('express server listening on port 1337')
})
【问题讨论】:
-
我刚刚运行了您的确切代码,我可以通过指向端口 1337 的 localhost 和 ngrok 使用 curl 成功地向您的
/sms端点发出 POST 请求。所以,看起来您的应用程序是正确的(只要因为您安装了版本 3 Twilio 库)。您是否可以了解有关该错误的更多详细信息?您可以在发布请求功能中记录来自 Node 应用程序的任何内容吗? ngrok 仪表板 (127.0.0.1:4040) 是否显示其他内容?