我是优步驱动程序,我正在开发一个python代码,以便使用API Uber来检索驱动程序历史记录。我已经看过文档,我已经将第一个代码编写到第一步auth:
from uber_rides.auth import AuthorizationCodeGrant
auth_flow = AuthorizationCodeGrant(
'my_client_id',
'partner.trips',
'my_secret_client',
'http://localhost:8000'
)
auth_url = auth_flow.get_authorization_url().replace('+','')
print(auth_url)
作为范围我设置了partner.trips,doc说如果你使用这个端点来回溯旅程:
https://api.uber.com/v1/partners/trips
当我运行代码时,这是url结果:
https://login.uber.com/oauth/v2/authorize?scope=partner.trips&state=a22YiIePVScRMh12gLbgZFnDK6415HHG&redirect_uri=http%3A%2F%2Flocalhost%3A8000&response_type=code&client_id=my_client_id
但是当我把网址放到浏览器中时,我发现了这个错误:
http://localhost:8000/?error=invalid_scope&state=iyzAM1rPWnZDFHqJlXEViTUL3UsLIz2O#_
错误无效范围。我已经看到了我的开发人员dashbord,我没有这个范围,但我有范围历史。因此,如果将历史记录设置为范围,我会将代码接收到重定向URL,但如果我使用此代码生成令牌并使用令牌调用此终点:
https://api.uber.com/v1/partners/trips
我发现了这个错误:
{"message":"This endpoint requires at least one of the following scopes: partner.trips, partner.admin_trips.locations, partner.admin_trips","code":"unauthorized"}
任何帮助请???我变得狡猾了。
答案 0 :(得分:0)
听起来你没有partner.trips范围:
"我已经看到了我的开发人员信息中心,我没有这个范围。"
由于您没有此范围,因此您收到的错误消息是正确的:
{" message":"此端点至少需要以下范围之一:partner.trips,partner.admin_trips.locations,partner.admin_trips"," code& #34;:"未授权"}
输入历史记录范围不会让您访问驱动程序API partner.trips范围。您可以通过https://developer.uber.com/products/drivers申请驱动程序API访问权限(目前有限)。