首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将request.js转换为axios (Vonage )

将request.js转换为axios (Vonage )
EN

Stack Overflow用户
提问于 2021-03-02 05:11:25
回答 2查看 1K关注 0票数 2

我正在使用Vonage进行一个信使项目。这段代码运行良好,但我尝试将其转换为axios而不是require.js。

代码语言:javascript
复制
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版本:

代码语言:javascript
复制
axios({
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Accept: "application/json",
  },
  body: {
    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",
});

但不起作用。我也试过

车身

  1. axios.post()
  2. JSON.stringify
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-02 20:52:13

Vonage支持给我发送了这段代码,它起了作用(没有人也没有数据)

代码语言:javascript
复制
axios
  .post(
    "https://messages-sandbox.nexmo.com/v0.1/messages",
    {
      from: { type: "messenger", id: "107083064136738" },
      to: { type: "messenger", 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);
  });
票数 0
EN

Stack Overflow用户

发布于 2021-03-02 08:59:24

设置主体数据的axios属性是" data ",而不是" body“。这件事以前就把我搞晕了。请尝试使用一些控制台日志来检查是否发送了正确的请求:

代码语言:javascript
复制
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",
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66433653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档