2015-04-08 13 views
8

Sto facendo una richiesta a https://sandbox-api.uber.com/v1/requests utilizzando il token Bearer per il mio account (che è l'amministratore dell'app Uber).Uber API - Ambito mancante: richiesta

Quando faccio la richiesta di I ottenere un 401:

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

Come ho detto, l'access_token che ho è per l'indirizzo di posta elettronica che viene registrata come l'amministratore applicazione in modo tale richiesta dovrebbe funzionare bene?

+0

quando si autorizza, si dovrebbe passare in un parametro chiamato 'scope', con valore' request' – wong2

+1

Ho anche lo stesso problema. La mia stringa URL è: "https://login.uber.com/oauth/authorize?response_type=code&client_id=MY_CLIENT_ID&scope=profile%20history_lite%20history%20request" In risposta mi sto "scope valido richiesto" Qualcuno può aiutare? –

+1

@KaushickGo questo errore potrebbe essere dovuto al fatto che accedi a Uber, utilizzando account diversi da quelli che hai utilizzato per la registrazione della tua app. 1. Uber: 1. [email protected] 2. [email protected] L'app Uber è registrata su [email protected] e quando si prova uber oauth, si decide di accedi a Uber sotto [email protected] In questo modo Uber restituirà 'error = invalid_scope'. Per aggirare questo problema, devi aggiungere "[email protected]" alla sezione "Utenti con accesso" nel tuo pannello delle app di Uber (è nella scheda Sviluppatori). – chaimann

risposta

4

Sì quando si chiama https://login.uber.com/oauth/authorize

si dovrebbe chiedere "& scope = profilo% 20history_lite% 20history% 20request"

+0

Con questo valore viene visualizzato un errore: "RICHIESTA INVALIDA RICHIESTA". Hai ottenuto un risultato positivo con questa chiamata?Puoi dire quale configurazione è necessaria per l'ambito della richiesta? –

+0

Ho provato di recente a utilizzare le API e ottenere l'errore "Scope non valido", se provo a utilizzare il mio account personale. D'altra parte, se provo a usare l'account dev creato per i test, funziona bene. Qualsiasi forma di aiuto sarebbe fantastica! – rkc88

1

Se si tenta questo repo su Github, che è un wrapper sottile per le API Uber, si può fare richieste facilmente.

Oppure si può fare la cosa portata da soli se si ha il quadro OAuth2, che cosa si può fare è passare nelle stringhe portata necessarie in API di seguito:

[[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

L'Uber OAuth contiene 2 fasi:

  1. Autorizzazione endpoint: https://login.uber.com/oauth/v2/authorize
  2. Token endpoint scambio: https://login.uber.com/oauth/v2/token
.210

Al fine di ottenere la corretta scopi è necessario passare la stringa di query alla prima chiamata API passo, qualcosa di simile:

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

allora si dovrebbe essere in grado di utilizzare la Fase 1 https://your-redirect-uri/?code=AUTHORIZATION_CODE di compiere ulteriori scambio access_token.

Il token di accesso stesso dovrebbe dirti se hai ottenuto gli ambiti corretti o meno, puoi controllarlo per https://jwt.io/ semplicemente incollando il tuo access_token.

Problemi correlati