2015-04-08 2 views
8

Я делаю запрос к https://sandbox-api.uber.com/v1/requests, используя токен носителя для моей учетной записи (который является администратором приложения Uber).Uber API - недостающий объем: запрос

Когда я делаю запрос я получаю 401:

{ 
    "message": "Missing scope: request", 
    "code": "unauthorized" 
} 

Как я уже сказал, access_token у меня есть для адреса электронной почты, который зарегистрирован в качестве приложения администратора, так этот запрос должен работать правильно?

+0

при авторизации, вы должны передать параметр под названием 'scope', со значением' request' – wong2

+1

. У меня также возникает проблема. Моя URL строка: «https://login.uber.com/oauth/authorize?response_type=code&client_id=MY_CLIENT_ID&scope=profile%20history_lite%20history%20request» В ответ я получаю «недействительная сфера просила» Может ли кто-нибудь помочь? –

+1

@KaushickGope эта ошибка может быть связана с тем, что вы входите в Uber, используя другую учетную запись, чем та, которую вы использовали для регистрации вашего приложения. Скажем, у вас есть 2 счета в Uber: 1. [email protected] 2. [email protected] Ваше приложение Uber зарегистрировано в соответствии с [email protected], и когда вы тестируете uber oauth, вы решаете войдите в Uber под [email protected] Таким образом, Uber вернет 'error = invalid_scope'. Чтобы обойти это, вы должны добавить «[email protected]» в раздел «Пользователи с доступом» в вашей панели инструментов Uber App (это находится на вкладке «Разработчики»). – chaimann

ответ

4

Да, когда вы звоните https://login.uber.com/oauth/authorize

вы должны запросить "& объем = профиль% 20history_lite% 20history% 20request"

+0

С этим значением я получаю сообщение об ошибке: «НЕВОЗМОЖНО ОБРАТИТЬСЯ ЗАЯВКУ». Получили ли вы результат успеха с этим звонком?Можете ли вы сказать, какая конфигурация необходима для области запроса? –

+0

Я недавно попробовал использовать API, а также получить ошибку «Недопустимая область», если попытаюсь использовать свою личную учетную запись. С другой стороны, если я попытаюсь использовать созданную для тестирования учетную запись разработчика, она работает нормально. Любая форма помощи была бы замечательной! – rkc88

1

Если вы попробуете это repo на Github, который представляет собой тонкую оболочку для Uber API-интерфейсов, вы можете делать запросы легко.

Или вы можете сделать за рамки вещь самостоятельно, если у вас есть рамки OAuth2, что вы можете сделать, это пройти в необходимом объеме строк в поле ниже API:

[[NXOAuth2AccountStore sharedStore] setClientID:_clientID 
             secret:_clientSecret 
              scope:[NSSet setWithObjects:@"request", @"history_lite", @"profile", @"request_receipt", nil] 
           authorizationURL:[NSURL URLWithString:@"https://login.uber.com/oauth/authorize"] 
             tokenURL:[NSURL URLWithString:@"https://login.uber.com/oauth/token"] 
            redirectURL:[NSURL URLWithString:_redirectURL] 
            keyChainGroup:nil 
           forAccountType:_applicationName]; 
0

убер OAuth содержит 2 шага:

  1. Авторизация конечных точек: https://login.uber.com/oauth/v2/authorize
  2. Токен обмен конечной точки: https://login.uber.com/oauth/v2/token

Для того, чтобы получить правильные областей нужно передать строку запроса на первый шаг апи вызов, что-то вроде:

https://login.uber.com/oauth/v2/authorize?client_id={cliend_id}&response_type=code&response_type=code&scope=profile%20history%20request%20places 

Тогда вы должны быть в состоянии использовать Шаг 1 https://your-redirect-uri/?code=AUTHORIZATION_CODE делать дальше обмен access_token.

Сам access_token должен сообщить вам, получили ли вы правильные области или нет, вы можете проверить его на https://jwt.io/, просто вставьте свой access_token.

Смежные вопросы