【发布时间】:2015-07-08 02:22:22
【问题描述】:
我正在使用 node.js 和 express.js 构建一个应用程序。我正在使用 node-oauth 模块连接到 yahoo,这样我就可以向 api 发出 get 请求。我不断收到以下错误
{ statusCode: 401,
data: '{"error":{"@lang":"en-US",
"@uri":"http://yahoo.com",
"description":"Not Authorized - Either YT cookies or a valid OAuth token must be passed for authorization","detail":"Not Authorized - Either YT cookies or a valid OAuth token must be passed for authorization"}}' }
在尝试了一段时间找出我的问题后,我要求社区检查我的代码,看看我做错了什么。代码如下。
"use strict";
// declare libraries
var express = require('express');
var router = express.Router();
var OAuth = require('OAuth');
// set yahoo key and secret
var yahooKey = '*****************************************************';
var yahooSecret = '*********************************';
var oauth2 = new OAuth.OAuth2(
yahooKey,
yahooSecret,
'https://api.login.yahoo.com/',
'oauth2/request_auth',
'oauth2/get_token',
null
);
router.get('/', function(req, res, next) {
var access_token = oauth2.getOAuthAccessToken(
'',
{'grant_type':'authorization_code', 'redirect_uri':'http://www.domain.com'},
function (e, access_token, refresh_token, results) {
// console.log(e);
// done();
});
// console.log(oauth);
oauth2.get(
'https://social.yahooapis.com/v1/user/circuitjump/profile?format=json',
access_token,
function (error, data, response){
if (error) {
console.error(error);
}
// data = JSON.parse(data);
// console.log(JSON.stringify(data, 0, 2));
// console.log(response);
});
res.render('index', { title: 'Express' });
});
// export route
module.exports = router;
非常感谢任何帮助。我的大脑被炸了……
【问题讨论】:
标签: node.js express oauth yahoo-api