我正在尝试通过Yahoo OAuth 2.0 Authentication
获取用户的正确信息从雅虎获取联系人列表。但是每当我尝试获取联系人列表时,我都会收到错误消息token_expired
。这是我使用的网址https://social.yahooapis.com/v1/user/' + user.guid + '/contacts'
guid 是正确的。我的代码如下:
app.get('/contacts', function(req, res) {
if (!req.session.user) {
return res.redirect('/auth/yahoo');
}
var user = req.session.user;
var contactsApiUrl = 'https://social.yahooapis.com/v1/user/' + user.guid + '/contacts';
console.log(user);
var options = {
url: contactsApiUrl,
headers: { Authorization: 'Bearer ' + user.accessToken },
rejectUnauthorized: false,
json: true
};
request.get(options, function(err, response, body) {
console.log(body);
var contacts = body.contacts.contact.map(function(contact) {
return contact.fields[0];
});
res.render('contacts', {
title: 'Contacts',
user: req.session.user,
contacts: contacts
});
});
});
我的应用有权:
1- 配置文件:读/写公共和私人
2- 联系人:阅读
访问令牌应该在 3600 秒后过期,但它会立即过期。
为此,我正在使用 node.js (express.js)。我搜索了这个问题,很多人建议刷新访问令牌,但我的应用程序即使第一次尝试获取它也没有获取联系人列表。所以,我猜还有其他问题。我知道我还没有进行异常处理,并且当没有收到任何信息时应用程序崩溃,但这不是这里的问题。