这样的用例是可能的,并在以下链接中进行了更详细的解释:
要打造这次旅行体验,您必须向用户请求all_trips OAuth scope:
所有行程
获取用户当前行程的详细信息,无论
请求方式(通过优步应用程序或第三方
应用程序)。
特权
这是一个特权范围,因为您需要先向 Uber 请求访问权限,该范围才能在您在 Uber Developer Dashboard 中定义的应用程序中使用
然后,在您使用POST /v1/requests 代表用户提出优步乘车请求后,您可以拨打GET /v1/requests/current 或GET /v1/requests/{request_id} 以获取行程详情:
{
"request_id":"17cb78a7-b672-4d34-a288-a6c6e44d5315",
"status":"accepted",
"location":{
"latitude":37.7886532015,
"longitude":-122.3961987534,
"bearing":135
},
"pickup":{
"latitude":37.7872486012,
"longitude":-122.4026315287,
"eta":5
},
"destination":{
"latitude":37.7766874,
"longitude":-122.394857,
"eta":19
},
"driver": {
"phone_number": "(555)555-5555",
"rating": 5,
"picture_url": "https:\/\/d1w2poirtb3as9.cloudfront.net\/img.jpeg",
"name": "Bob"
},
"vehicle":{
"make": "Bugatti",
"model": "Veyron",
"license_plate": "I<3Uber",
"picture_url": "https:\/\/d1w2poirtb3as9.cloudfront.net\/car.jpeg"
},
"surge_multiplier":1.0,
"eta": 5
}
当您通过 webhook 收到 Uber 的通知时,您会调用 GET /v1/requests/current 或 GET /v1/requests/{request_id} 端点。
然后,您需要根据您收到的数据通知您的 Android 服务(通过服务器到客户端的通信机制,例如 websocket、推送通知等),Uber 提供了新信息,并基于您向用户显示的信息给定您要使用的“旅行背景”数据的相关信息,例如:
- 当前位置(纬度/经度)
- 取货地点(纬度/经度)
- 预计接送时间(汽车到达时)
- 目的地位置(纬度/经度)
- 到达目的地的 ETA(当用户在车里时)
webhook 接收以下事件:
-
REQUESTS.STATUS_CHANGED
对于您的应用程序在
我们将代表优步乘客向您的 WEBHOOK URL 发出请求
每当其状态发生变化时。这可以帮助您通知用户或
更改应用程序的状态以反映状态更改,而无需
不断轮询 /v1/requests 端点。
-
REQUESTS.RECEIPT_READY
对于您的应用程序代表优步乘客提出的所有请求,我们
每当收到请求回执时,都会向您的 WEBHOOK URL 发出请求
可用的。这将允许您向用户展示他们的详细信息
车费以及收据一到他们就被收取了多少费用
可用的。如果骑手在宽限期后取消,并且他们是
已收费,但仍会提供显示该收费的收据。
要访问请求回执资源,用户必须拥有
授权您的应用程序访问 request_receipt
范围。