我正在尝试连接到位于此处的TradeGecko API: (他们所有的例子都是红宝石 - 我正在使用Node)
http://developer.tradegecko.com/
我有一个我创建的特权访问令牌 假秘克: 146e29b59e7e8861f462101f610f58168ca5edf2f307e5f7adc3314d24ee8015
如何以GET请求获取所有产品为例: http://developer.tradegecko.com/?ruby#list-all-products
非常感谢帮助!
假设我有一些这样的代码:
var express = require('express');
var request = require('request');
var app = express();
var port = process.env.PORT || 3000;
var testRouter = express.Router();
myRouter.route('/testRoute')
.get(function(req, res){
request('API CALL HERE??', function (error, response, body){
if(!error && response.statusCode == 200){
res.json(body);
}
})
});
app.use('/api', bookRouter);
var myRouter = express.Router();
app.get('/', function(req, res){
res.send('Welcome to my API');
});
app.listen(port, function() {
console.log('GULP is running my app on PORT: ' + port);
});
答案 0 :(得分:2)
如果您查看the documentation you cited的结尾,您会注意到请求是:
GET https://api.tradegecko.com/products
这是RESTful API。您需要了解如何提供访问令牌。
通常,您在请求中添加一个标题:
授权:承载您的令牌
...并做一个简单的GET请求。
Their documentation for authentication提供了有关如何进行身份验证的详细信息。它是RESTful,所以我的假设是正确的。
TradeGecko使用API密钥来允许访问API。你可以注册 我们的开发人员门户网站上新的TradeGecko API密钥。
TradeGecko希望API密钥能够包含在所有API请求中 在标题中显示如下所示的服务器:
授权:持票人< ACCESS_TOKEN>
您必须使用个人API密钥替换。
此stack overflow answer包含有关从nodejs执行REST请求的更多详细信息。
使用此功能:如果您想将此添加到其他人的答案中。
myRouter.route('/testRoute')
.get(function(req, res){
request({
method: 'GET',
uri: 'https://api.tradegecko.com/products',
headers: {'Authorization': 'Bearer ' + 'TOKEN HERE'}
}, function (error, response, body){
if(!error && response.statusCode == 200){
res.json(body);
}
})
});
答案 1 :(得分:1)
您必须使用ACCESS_TOKEN
发送请求request({
url: "",
method: "",
headers: {'Authorization': 'Bearer ' + YOUR_ACCESS_TOKEN},
})