使用node-orangesms发送短信

时间:2016-10-31 13:20:48

标签: node.js api npm sms

使用NodeJS我想实现Orange SMS API:http://developer.orange.com/apis/sms-eg/api-reference。我已经为我的NodeJS项目下载了node-orangesms npm包。但是,我正在努力让它发挥作用。

我已经从developer.orange.com为我的项目获得了clientIdsecret。我注意到在NPM的包页面上:https://www.npmjs.com/package/node-orangesms没有描述应该插入认证头以使sendSMS功能起作用的地方。我收到了这个错误:

{ Error: tunneling socket could not be established, statusCode=302
at ClientRequest.onConnect (/home/salma/Desktop/project1/node_modules/tunnel-agent/index.js:165:19)
at ClientRequest.g (events.js:291:16)
at emitThree (events.js:116:13)
at ClientRequest.emit (events.js:194:7)
at TLSSocket.socketOnData (_http_client.js:394:11)
at emitOne (events.js:96:13)
at TLSSocket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at TLSSocket.Readable.push (_stream_readable.js:134:10)
at TLSWrap.onread (net.js:551:20) code: 'ECONNRESET' }

我认为这可能就是原因。到目前为止,这是我的代码:

var clientId = 'XX';
var secret = 'XX';
var userOptions = {
  proxy: {
    protocol: 'https',
    host    : 'api.orange.com/smsmessaging/v1/outbound/tel%3A%2BXXXXXXXX/requests',
    port    : 8080
  },
  strictSSL: true
}

var OrangeSMS = require('node-orangesms')(clientId, secret, userOptions);

var senderAddress = 'tel:+20XXXXXXXXXX';
var senderName = 'test';

module.exports = {
  sendSMS: function(recipient, content, next) {
    OrangeSMS.sendSMS("tel:+"+recipient, content, senderAddress, senderName);
  };
};

2 个答案:

答案 0 :(得分:0)

此包装器的目标是抽象身份验证过程,以便您不必担心它。

从技术上讲,您永远不必指定身份验证标头,因为库正在为您执行此操作。

您的问题可能与网络限制错误有关吗?

答案 1 :(得分:0)

问题是https。它导致身份验证失败。将其更改为http后,它才有效。