亲爱的stackoverflower,
我打算用 Coinbase 集成构建一个 Electron 应用程序。
首先,我要让服务器(NodeJS)与 OAuth2 一起工作。
每件事都很好,但是当我想使用指示的发布请求将其更改code
为时access token
,它给了我以下错误:
{
error: "invalid_request",
error_description: "The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed."
}
我已经将https://localhost:3000/auth/coinbase/callback
和添加https://localhost:3000/profile
到有效的 API URI 中。
几个小时后我没有成功弄清楚。
我的服务器是这样的:
var express = require('express');
var app = express();
var fs = require('fs')
var https = require('https');
var coinbase = require('coinbase')
var request = require('request');
var options = {
key: fs.readFileSync('./ssl/coinbase.dev.key'),
cert: fs.readFileSync('./ssl/coinbase.dev.crt'),
};
var client_id = 'gues it'
var client_secret = 'gues it'
app.use(express.static('static'));
app.get('/login/coinbase', function(req, res) {
res.redirect('https://www.coinbase.com/oauth/authorize?response_type=code&redirect_uri=https://localhost:3000/auth/coinbase/callback&client_id=' + client_id + '&scope=wallet:user:read,wallet:accounts:read')
})
app.get('/auth/coinbase/callback', function(req, res) {
var data = {
client_id: client_id,
client_secret: client_secret,
grant_type: 'authorization_code',
code: req.query.code,
redirect_uri: 'https://localhost:3000/profile'
}
request.post(
'https://api.coinbase.com/oauth/token', data, function (error, response, body) {
console.log(body)
res.send(body)
}
);
})
app.get('/', function(req, res) {
res.send('home')
})
app.get('/profile', function(req, res) {
res.send('profile')
})
var server = https.createServer(options, app);
server.listen(3000)
提前致谢,
西奥
[编辑] 我联系了 Coinbase 开发人员,他们很惊讶在 Coinbase 的 OAuth 上没有 NodeJS 示例,因此他们将其添加到他们的路线图中。