我正在使用Node-uber与Uber API进行通信。 我必须遵循代码(项目示例代码的几乎完全复制,密钥被隐藏)
var uber = new Uber({
client_id: 'XXXXXXXXXXXX',
client_secret: 'XXXXXXXXXXXXX',
server_token: 'XXXXXXXXXXXX',
redirect_uri: 'https://localhost:3002/rides/callback',
name: 'app name',
language: 'en_US',
sandbox: true
});
router.get('/login', function(request, response) {
var url = uber.getAuthorizeUrl(['request']);
console.log(url);
response.redirect(url);
});
router.get('/callback', function(req, res, next) {
uber.authorization({
authorization_code: req.query.code
}, function(err, access_token, refresh_token) {
if (err) {
console.error(err);
} else {
res.redirect('/dashboard/pages/index.html');
}
});
});
现在,当我尝试使用我的Uber开发人员凭据登录时(我曾经在Uber上创建应用程序),一切都运行良好,这让我相信实现至少具有基本意义。
问题是当我尝试另一个不相关的Uber登录时。然后返回的错误代码为invalid_grant
答案 0 :(得分:2)
问题是您需要“请求”'作为特权范围的范围。
好消息是,您在授权自己的帐户或您在开发人员信息中心中列出的开发人员帐户时,目前可以访问这些范围。当您准备好向更多受众群体开放应用并投入生产时,请从开发者信息中心提交完整访问权限请求。
在范围文档中了解更多信息:https://developer.uber.com/docs/rides/scopes