2015-04-08 102 views
8

我正在向我的帳戶(這是Uber應用程序的管理員)使用承載令牌對https://sandbox-api.uber.com/v1/requests發出請求。Uber API - 缺少範圍:請求

當我提出請求,我收到了401:

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

正如我所說,我的access_token都可以註冊爲應用程序管理員所以這個請求應該工作的權利的電子郵件地址?

+0

當授權時,您應該傳遞一個名爲'範圍'的參數,其值爲'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此錯誤可能是由於您使用與您註冊應用程序時使用的帳戶不同的帳戶登錄到優步。 說,你在優步有2個賬戶: 1. [email protected] 2. [email protected] 你的優步應用程序在[email protected]下注冊,當你測試uber oauth時,你決定通過[email protected]登錄Uber。這樣,Uber將返回'error = invalid_scope'。要繞過這一點,您必須將「[email protected]」添加到您的優步應用程序儀表板中的「有權訪問的用戶」部分(位於開發人員選項卡下)。 – chaimann

回答

4

是,當你調用https://login.uber.com/oauth/authorize

您應該請求「&範圍=輪廓%20history_lite%20history%20request」

+0

有了這個值,我得到一個錯誤:「無效範圍請求」。這次電話會議取得了成功的結果嗎?你能說請求範圍需要什麼配置嗎? –

+0

我最近嘗試過使用這些API,如果我嘗試使用我的個人帳戶,也會得到「無效範圍」錯誤。另一方面,如果我嘗試使用爲測試創建的dev帳戶,它可以正常工作。任何形式的幫助都會很棒! – rkc88

1

如果試圖在Github這repo這是尤伯杯的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包含兩個步驟:

  1. 授權端點:https://login.uber.com/oauth/v2/authorize
  2. 令牌交換終結:https://login.uber.com/oauth/v2/token

爲了獲得正確的範圍你需要查詢字符串傳遞到第一步API調用,這樣的:

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

那麼你應該能夠使用Step 1 https://your-redirect-uri/?code=AUTHORIZATION_CODE進一步使交換access_token。

access_token本身應該告訴你,如果獲得了正確的範圍或沒有,你可以通過https://jwt.io/來檢查它,只需粘貼你的access_token即可。