使用 nexmo npm 包从服务器获取错误以发送 SMS

Getting error from server using nexmo npm package to send SMS

我正在使用 nexmo NPM 包。我已经根据文档实现了所有内容,但我从服务器收到了此响应,但未发送 SMS。

{
  "code": "ENOTFOUND",
  "errno": "ENOTFOUND",
  "syscall": "getaddrinfo",
  "hostname": "rest.nexmo.com",
  "host": "rest.nexmo.com",
  "port": 443
}

我将其实现为 Firebase Cloud Function。这是代码

exports.SMS = functions.https.onRequest((request, response) => {

  console.log("This is the function");
  console.log(request.body);
  var json = JSON.parse(request.body);
  const phone = json.phone;

  console.log(phone);

  const nexmo = new Nexmo({
    apiKey: '******',
    apiSecret: '*********'
  });


  const from = '12017016978';
  const to = phone;
  const text = 'Thank You for using TPV Express. Please use the following link to download our voice-enabled Android app for Third Party Verification.  https://play.google.com/store/apps/details?id=com.patientdatascience.tpvexpress&hl=en';

  nexmo.message.sendSms(from, to, text, (error, res) => {
    if(error) {
      // throw error;
      console.log(error);
      response.json({success: false,data: error});
    } else if(res.messages[0].status != '0') {
      console.error(res);
      response.json({success: false,data: res});
      // throw 'Nexmo returned back a non-zero status';
    } else {
      console.log(res);
      response.json({success: true,data: res});

    }
  });
});

我明白问题出在哪里了。它不适用于 nexmo npm 包。问题是我在 firebase 的 spark 计划中,这个免费计划不允许我们从函数中调用第三方 API。

我升级到 Blaze 计划并解决了这个问题。