2

request_ride with sandbox_mode=True is throwing error message. Below is my code and entire error message.

#Python 3.x
from uber_rides.session import Session
from uber_rides.client import UberRidesClient
session = Session(server_token="something-special")
client = UberRidesClient(session,sandbox_mode=True)
#UberX product id
product_id = '04a497f5-380d-47f2-bf1b-ad4cfdcb51f2' 
response = client.request_ride(product_id, 37.77, -122.41, 37.79, -122.41)
ride_details = response.json
ride_id = ride_details.get('request_id')
response = client.update_sandbox_ride(ride_id, 'accepted')
print(response)

#error message
...
...
uber_rides.errors.ClientError: The request contains bad syntax or   
cannot be filled due to a fault from the client sending the request.
4

1 回答 1

4

您收到 4XX ClientError 是因为您尝试使用服务器令牌请求乘车。如果你处理错误并检查它,你会看到它是一个401: Unauthorized error.

为了叫车,您需要获得一个带有request范围的 OAuth2 访问令牌。

服务器令牌可以访问产品、时间估计和价格估计等端点。要访问更多受保护的资源,例如用户活动或请求端点,您需要遵循 OAuth2 来获取访问令牌

Uber 的 Python SDK 中还有一个OAuth2 授权示例

于 2015-12-25T17:31:18.773 回答