2015-04-08 9 views
8

Ich mache eine Anfrage an https://sandbox-api.uber.com/v1/requests mit dem Bearer Token für mein Konto (das ist der Admin der Uber App).Uber API - Fehlender Umfang: Anfrage

Wenn ich den Antrag stellen bekomme ich eine 401:

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

Wie ich gesagt habe, die access_token ich habe, ist für die E-Mail-Adresse, die als App Admin registriert ist, so sollte diese Anforderung richtig?

+0

Wenn Sie autorisieren, sollten Sie in einem Parameter mit dem Namen 'scope' übergeben, mit dem Wert' request' – wong2

+1

Ich bekomme auch das gleiche Problem. Meine URL-Zeichenfolge ist: „https://login.uber.com/oauth/authorize?response_type=code&client_id=MY_CLIENT_ID&scope=profile%20history_lite%20history%20request“ Als Antwort erhalte ich „ungültig Umfang angefordert“ Kann jemand helfen? –

+1

@KaushickGope Dieser Fehler kann darauf zurückzuführen sein, dass Sie sich bei Uber anmelden und ein anderes Konto als das verwenden, mit dem Sie Ihre App registriert haben. Sagen Sie, Sie haben 2 Konten bei Uber: 1. [email protected] 2. [email protected] Ihre Uber App ist unter [email protected] registriert, und wenn Sie Uber oauth testen, entscheiden Sie sich dafür Melden Sie sich bei Uber unter [email protected] an. Auf diese Weise gibt Uber 'error = invalid_scope' zurück. Um dies zu umgehen, müssen Sie "[email protected]" zum Abschnitt "Benutzer mit Zugriff" in Ihrem Uber App Dashboard hinzufügen (es befindet sich auf der Registerkarte "Entwickler"). – chaimann

Antwort

4

Ja, wenn Sie anrufen https://login.uber.com/oauth/authorize

sollten Sie anfordern "& scope = Profil% 20history_lite% 20history% 20request"

+0

Mit diesem Wert erhalte ich einen Fehler: "UNGÜLTIGER ANTRAG GESUCHT". Haben Sie mit diesem Anruf ein Erfolgsergebnis erzielt?Können Sie bitte sagen, welche Konfiguration für den Anforderungsbereich benötigt wird? –

+0

Ich habe kürzlich versucht, die APIs zu verwenden und auch den Fehler "Ungültiger Bereich" zu erhalten, wenn ich versuche, meinen persönlichen Account zu verwenden. Auf der anderen Seite, wenn ich versuche, das zum Testen erstellte Dev-Konto zu verwenden, funktioniert es gut. Jede Form von Hilfe wäre großartig! – rkc88

1

Wenn Sie diese repo auf Github versuchen, die für Uber APIs eine dünne Hülle ist, können Sie Anfragen einfach stellen.

Oder Sie können den Umfang Sache selbst tun, wenn Sie die OAuth2 Rahmen haben, was Sie tun können, ist in den notwendigen Handlungsspielraum Strings in folgenden API übergeben:

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

Die Uber OAuth enthält 2 Schritten:

  1. Authorization Endpunkt: https://login.uber.com/oauth/v2/authorize
  2. Token Austausch Endpunkt: https://login.uber.com/oauth/v2/token

Um die richtigen Bereiche Sie die Abfragezeichenfolge mit dem ersten Schritt api Anruf, so etwas wie passieren müssen zu gewinnen:

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

Dann sollten Sie in der Lage zu verwenden, um den Schritt 1 https://your-redirect-uri/?code=AUTHORIZATION_CODE macht weiter Tauschen Sie access_token aus.

Das access_token selbst sollte Ihnen sagen, ob die richtigen Bereiche erreicht wurden oder nicht, Sie können es überprüfen, indem Sie einfach https://jwt.io/ Ihr access_token einfügen.

Verwandte Themen