使用NodeJS我想实现Orange SMS API:http://developer.orange.com/apis/sms-eg/api-reference。我已经为我的NodeJS项目下载了node-orangesms
npm包。但是,我正在努力让它发挥作用。
我已经从developer.orange.com为我的项目获得了clientId
和secret
。我注意到在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);
};
};
答案 0 :(得分:0)
此包装器的目标是抽象身份验证过程,以便您不必担心它。
从技术上讲,您永远不必指定身份验证标头,因为库正在为您执行此操作。
您的问题可能与网络限制错误有关吗?
答案 1 :(得分:0)
问题是https
。它导致身份验证失败。将其更改为http
后,它才有效。