這樣的使用情況是可能的,在更多的細節在下面的鏈接解釋說:
要建立你有權要求本體驗之旅來自用戶的all_trips OAuth scope:
個
all_trips
獲取用戶目前正在不分 它是如何要求(通過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
}
當您收到通過網絡掛接你再調用GET /v1/requests/current或GET /v1/requests/{request_id}端點從尤伯杯的通知。
然後,您收到的數據需要通知您的Android服務(通過服務器到客戶端的通信機制,例如websocket,推送通知等),可以從優步獲得新信息,並基於您向用戶相關信息,例如:
- 當前位置(經度/緯度)
- 取貨地點(緯度/經度)
- ETA換貨(當汽車抵達時)
- 目的地位置(經度/緯度)
- ETA到達目的地(用戶在車內)
網絡掛接收到以下事件:
REQUESTS.STATUS_CHANGED
對於您的應用程序上 代表尤伯杯車友提出的所有要求,我們將請求您網絡掛接網址 每當其狀態改變。這可以幫助您通知用戶或 更改您的應用的狀態以反映狀態更改,而不會連續輪詢/ v1/requests端點的0。
REQUESTS.RECEIPT_READY
有關您的代表尤伯杯車手的應用程序發出的所有請求,我們將 每當請求收據 可以讓你的網絡掛接URL的請求。這可以讓您向您的用戶顯示其 票價的詳細信息以及一旦收到可用的收據 後,他們的收費是多少。如果騎手在寬限期過後取消,並且他們收到了 ,收據仍然可用,顯示該收費。
要訪問請求回執資源,用戶必須擁有 授權您的應用程序才能訪問request_receipt 範圍。
感謝這麼多回復 我瞭解OAuth的部分和網絡掛接(這是真棒,因爲那樣我的應用程序不必繼續在狀態檢查,然後我必須處理電池耗盡問題:))。 我不清楚的一件事是 - 我必須做POST/v1/requests嗎?因爲我不希望我的應用程序啓動該程序,而是希望我的應用程序知道正在進行中,然後通過webhooks,您可以獲得狀態如您所描述的那樣改變。 – user1352234
如果您不想發出乘車請求,您可以使用帶有訪問令牌的訪問令牌來調用[GET /v1/requests/current](https://developer.uber.com/docs/v1-requests-current) [all_trips範圍](https://developer.uber.com/docs/scopes)和行程詳細信息將返回當前請求/行程,而不管哪個應用程序啓動它。all_trips是一個特權範圍,您需要向Uber請求開發人員儀表板中的應用程序訪問權限。 「有關所有未來優步行程的訪問行程詳情,包括所有未來遊樂設施的取件,目的地和實時位置」 – bitek
但存在不足之處如果行程不匹配,您將不會在網站掛接網址中收到狀態更新通知請求不是由您的應用程序提出的。正如[網絡鉤子文檔](https://developer.uber.com/docs/webhooks#section-events)所述:「對於您的應用程序代表優步車手所提出的所有請求,我們會向您的WEBHOOK URL的狀態變化時「。你必須進行輪詢,查看[this](https://developer.uber.com/docs/tutorial-trip-experiences#section-best-practices)和[this](https://developer.uber.com/docs/tutorials-rides-api#section-processing-a-request)以獲得最佳做法 – bitek