如何解决将 request.js 转换为 axios (Vonage api)
我正在使用 Vonage api 进行一个 Messenger 项目。 这段代码运行良好,但我尝试将其转换为 axios 而不是 require.js
var request = require("request");
const data = JSON.stringify({
from: { type: "messenger",id: process.env.BOT_ID },to: { type: "messenger",id: process.env.USER_ID },message: {
content: {
type: "text",text: "Hi There!",},});
var options = {
url: "https://messages-sandbox.nexmo.com/v0.1/messages",method: "POST",headers: {
"Content-Type": "application/json",Accept: "application/json",body: data,auth: {
user: process.env.API_KEY,pass: process.env.API_SECRET_KEY,};
function callback(error,response,body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options,callback);
这是具有相同请求的 axios 版本:
axios({
method: "POST",body: {
from: { type: "messenger",message: {
content: {
type: "text",text:
"Hi There!"
},url: "https://messages-sandbox.nexmo.com/v0.1/messages",});
而且它不起作用。 我也试过
- axios.post()
- JSON.stringify 用于正文
解决方法
设置body数据的axios属性是“data”,不是“body”。这让我很早就出局了。请通过一些控制台日志尝试以下操作,以检查发送的请求是否正确:
axios({
method: "POST",headers: {
"Content-Type": "application/json",Accept: "application/json",},data: {
from: { type: "messenger",id: process.env.BOT_ID },to: { type: "messenger",id: process.env.USER_ID },message: {
content: {
type: "text",text:
"Hi There!"
},auth: {
user: process.env.API_KEY,pass: process.env.API_SECRET_KEY,url: "https://messages-sandbox.nexmo.com/v0.1/messages",});
,
Vonage 支持向我发送了此代码并且它有效(没有正文或数据)
axios
.post(
"https://messages-sandbox.nexmo.com/v0.1/messages",{
from: { type: "messenger",id: "107083064136738" },id: "3958866477502819" },message: {
content: {
type: "text",text: "You should havee ",{
auth: {
username: "5aa06d41",password: "FMqffmop1GB64X58",}
)
.then(function (response) {
console.log("Status: " + response.status);
console.log(response.data);
})
.catch(function (error) {
console.error(error);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。