Uber API - invalid_grant 使用非开发人员登录时

Uber API - invalid_grant when using non developer login

我正在使用 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

问题是您需要 'request' 范围,这是一个特权范围。

好消息是,在授权您自己的帐户或您在开发者仪表板中列出的开发者帐户时,您目前可以访问这些范围。当您准备好向更多用户开放您的应用并投入生产时,请从开发者仪表板提交完全访问请求。

在范围文档中了解更多信息:https://developer.uber.com/docs/rides/scopes