Node.js 如何使用Typescript在Twilio API的电话验证中传递post请求
我试过了,但它仍然显示了这个错误,在帖子正文中缺少所需的参数,我也需要数据。但如何解决这个问题也会出现同样的错误 Twilio代码Node.js 如何使用Typescript在Twilio API的电话验证中传递post请求,node.js,twilio,twilio-api,twilio-php,nodejs-server,Node.js,Twilio,Twilio Api,Twilio Php,Nodejs Server,我试过了,但它仍然显示了这个错误,在帖子正文中缺少所需的参数,我也需要数据。但如何解决这个问题也会出现同样的错误 Twilio代码 import axios from 'axios' import qs from 'qs'; import * as Twilio from 'twilio'; export function sendOtpForValidUser(user_phone_number: string){ const data = JSON.stringify({ &qu
import axios from 'axios'
import qs from 'qs';
import * as Twilio from 'twilio';
export function sendOtpForValidUser(user_phone_number: string){
const data = JSON.stringify({
"To":user_phone_number,
"Channel":'sms'
})
console.log(data)
return axios.post(`https://verify.twilio.com/v2/Services/${serviceid}/Verifications`, data, {
headers: {
'Authorization': 'Basic ' + Buffer.from(accountSid + ':' + authToken).toString('base64'),
'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
},
}).then(message => {
console.log('Message', message.status)
var status = message.status
return status
})
.catch(error => {
console.log(error)
var status = error.data
return status
})
}
错误
{
code: 20001,
message: 'Missing required parameter To in the post body',
more_info: 'https://www.twilio.com/docs/errors/20001',
status: 400
}
如何解决这个问题。我将数据更改为这种格式qs.stringify()、JSON.stringfy(),但这是相同的错误当我尝试使用Twilio Notify API执行类似操作时(但使用节点获取而不是Axios)
这里是Twilio开发者福音传道者 这里包含了Twilio节点库,但没有使用它。当您已经包含Twilio时,不必使用axios来构建此API调用。您可以发送一个新的验证,如下所示:
从“Twilio”导入*作为Twilio;
const client=Twilio(accountSid,authToken);
导出函数sendOtpForValidUser(userPhoneNumber:string){
返回client.verify.services(serviceSid).verifications.create({
收件人:userPhoneNumber,
频道:“短信”
})
。然后(消息=>{
console.log('Message',Message.status)
var status=message.status
返回状态
})
.catch(错误=>{
console.log(错误)
var状态=error.data
返回状态
});
}
const fetch = require('node-fetch');
const params = new URLSearchParams();
params.append('Body', 'Hello from Node-Fetch - It Works!');
params.append('ToBinding', '{ "binding_type": "sms", "address": "+1407xxxxxx" }');
params.append('ToBinding', '{ "binding_type": "sms", "address": "+1601xxxxxx" }');
let headers = {Authorization: 'Basic ' + new Buffer.from(process.env.TWILIO_ACCOUNT_SID + ":" + process.env.TWILIO_AUTH_TOKEN).toString("base64")};
console.log(`To String Output: ${params.toString()}`);
fetch('https://notify.twilio.com/v1/Services/ISxxxx/Notifications',
{method: 'POST', headers: headers, body: params})
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.log(err))