Uber API client.request_ride方法抛出错误

时间:2016-11-24 09:30:21

标签: python-2.7 uber-api

我在使用Python通过优步Api请求出租车时遇到并发出问题。 这些是我遵循的步骤:

  1. 使用我的server_token创建会话。
  2. 使用我的凭据进行授权。
  3. 获得authorization_url并完成用户身份验证。
  4. 使用我从用户身份验证获得的会话创建了一个对象。
  5. 使用以下方法获取凭据:

    credentials = new_session.oauth2credential

  6. 估计骑行:

    估计= client.estimate_ride(product_id = PRODUCT_ID, start_latitude = xx.xxx,start_longitude = xx.xxx,end_latitude = xx.xxx,end_longitude = xx.xxx)

  7. 获取票价金额:

    fare = estimate.json.get('fare')

  8. 我尝试使用以下代码请求乘坐并获得例外:

    response = client.request_ride(product_id = Product_ID, start_latitude = xx.xxx,start_longitude = xx.xxx,end_latitude = xx.xxx,end_longitude = xx.xxx,fare_id = fare.get('fare_id'))

  9. 例外:

    ClientError:401:此端点至少需要以下范围之一:request.delegate.tos_accept,request,request.delegate

  10. 请告诉我哪里出错了。我错过了任何一步吗?

    提前致谢。

1 个答案:

答案 0 :(得分:3)

问题是您需要添加'请求'创建令牌时的特权范围。

from uber_rides.auth import AuthorizationCodeGrant
auth_flow = AuthorizationCodeGrant(
    <CLIENT_ID>,
    <SCOPES>,
    <CLIENT_SECRET>,
    <REDIRECT_URI>
)
auth_url = auth_flow.get_authorization_url()

请参阅python ride requests tutorial

中的详细信息