我试图设置我们的twilio应用程序,以便在收到短信时响应客户端。我创建了一个js文件发送一个初始文本和另一个js文件,它将在收到回复时发送响应。
然后我从我的机器启动了初始服务器,然后启动了ngrok http 1337 我将转发网址从ngrok复制并粘贴到我的twilio仪表板上的消息webhook中,并添加了" / sms"到网址的末尾。
当我回复文本时,我没有收到回复,并且可以在ngrok中看到我收到了" 502 Bad Gateway错误"。
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')
})
答案 0 :(得分:0)
你从ngrok获得502 Bad Gateway
,因为你的Express http服务器无法运行或出现问题。
当您回复短信时,Twilio正在向您的ngrok发出POST请求,这是有效的,因为您在屏幕上显示了该消息502 Bad Gateway
。
启动Express时,您应该看到express server listening on port 1337
如果您使用浏览器访问http://localhost:1337/
,您应该会看到一个Cannot GET /
页面,因为浏览器没有发出POST请求,但至少可以确认Express服务器正在运行。< / p>