2015-12-14 2 views
3

Привет, я хочу интегрировать Ride с кнопкой uber на моем APP. Я СДЕЛАЛ получить запрос на api с параметрамиИнтеграция Uber API (deeplinking) в Android-приложении

'server_token': 'ma***********************u', 
'start_latitude', 
'start_longitude', 
'end_latitude' 
'end_longitude'. 

, и я получил ответ:

{ 
"result": { 
"prices": [ 
    { 
    "currency_code": "INR", 
    "display_name": "uberGO", 
    "distance": 18.45, 
    "duration": 3503, 
    "estimate": "₹559-720", 
    "high_estimate": 720, 
    "localized_display_name": "uberGO", 
    "low_estimate": 559, 
    "minimum": 60, 
    "product_id": "c8170d76-b67c-44b1-8c26-5f45541434d2", 
    "surge_multiplier": 2 
    }, 
    { 
    "currency_code": "INR", 
    "display_name": "uberGO", 
    "distance": 18.45, 
    "duration": 3503, 
    "estimate": "₹559-719", 
    "high_estimate": 719, 
    "localized_display_name": "uberGO", 
    "low_estimate": 559, 
    "minimum": 60, 
    "product_id": "bc46ccfe-de64-4cad-b63a-7cf48e649a3e", 
    "surge_multiplier": 2 
    }, 
    { 
    "currency_code": "INR", 
    "display_name": "uberX", 
    "distance": 18.45, 
    "duration": 3503, 
    "estimate": "₹834-1,069", 
    "high_estimate": 1069, 
    "localized_display_name": "uberX", 
    "low_estimate": 834, 
    "minimum": 80, 
    "product_id": "4da6a747-e0be-4f56-a3c7-3f30f22bf86d", 
    "surge_multiplier": 2.4 
    }, 
    { 
    "currency_code": "INR", 
    "display_name": "uberGO", 
    "distance": 18.45, 
    "duration": 3503, 
    "estimate": "₹834-1,069", 
    "high_estimate": 1069, 
    "localized_display_name": "uberGO", 
    "low_estimate": 834, 
    "minimum": 80, 
    "product_id": "18656d0e-cc1b-4aa6-8146-92e605626caa", 
    "surge_multiplier": 2.4 
    }, 
    { 
    "currency_code": "INR", 
    "display_name": "uberXL", 
    "distance": 18.45, 
    "duration": 3503, 
    "estimate": "₹1,646-2,099", 
    "high_estimate": 2099, 
    "localized_display_name": "uberXL", 
    "low_estimate": 1646, 
    "minimum": 125, 
    "product_id": "2ea18da2-bcf0-4df7-a7b8-a827e9945322", 
    "surge_multiplier": 3.4 
    }, 
    { 
    "currency_code": "INR", 
    "display_name": "uberXL", 
    "distance": 18.45, 
    "duration": 3503, 
    "estimate": "₹1,646-2,099", 
    "high_estimate": 2099, 
    "localized_display_name": "uberXL", 
    "low_estimate": 1646, 
    "minimum": 125, 
    "product_id": "a4404842-e40a-471b-a7a5-13da3551e94f", 
    "surge_multiplier": 3.4 
    } 
    ] 
} 
} 

Теперь я добавил этот код на onclicklisteners кнопок:

String uri = "uber://?client_id=eFrzgz_2Du2KYUXIi3MKaNOWtxo3i77K&action=setPickup&pickup[latitude]=37.775818&pickup[longitude]=-122.418028&pickup[nickname]=UberHQ&pickup[formatted_address]=1455%20Market%20St%2C%20San%20Francisco%2C%20CA%2094103&dropoff[latitude]=37.802374&dropoff[longitude]=-122.405818&dropoff[nickname]=Coit%20Tower&dropoff[formatted_address]=1%20Telegraph%20Hill%20Blvd%2C%20San%20Francisco%2C%20CA%2094133&product_id=a1111c8c-c720-46c3-8534-2fcdd730040d"; 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse(uri)); 
startActivity(intent); 


При нажатии на эти кнопки красная кнопка перенаправляет на uber APP с правильными src и dst, но он не выбирает правильную категорию uber, такую ​​как UberX, UberGo, UberL и т. д. Он всегда выбирает категорию по умолчанию. Как настроить его на уровень, чтобы пользователю просто нужно было щелкнуть по одной кнопке, чтобы забронировать такси.

+0

получил что-нибудь ?? –

+0

работает полностью на моем футляре –

+0

Что вы сделали? можете ли вы поделиться своим кодом? –

ответ

1

sample data, используемый в тестах глубокого связывания в uber-rides-sdk для Android, показывает те же параметры для намерения, которые вы отправляете, поэтому он должен работать.

убер: действие = setPickup & client_id = ClientID & product_id = PRODUCTID & пикап% 5Blatitude% 5D = 32,1234 & пикап% 5Blongitude% 5D = -122,3456 & пикап% 5Bnickname% 5D = pickupNick & пикап% 5Bformatted_address% 5D = Самовывоз% 20Address &% 5Blatitude оставит машина% 5D = 32,5678% & 5Blongitude оставит машина% 5D = -122,6789 &% 5Bnickname оставит машина% 5D = pickupNick &% 5Bformatted_address оставит машина% 5D = Dropoff% 20Address

В данных испытаний я вижу, что они также URL/percent encode ключей и значений (например, пикап% 5Blatitude% 5D = 32.1234), однако в documentation они этого не делают.
Попробуйте кодировать URI данных и повторить попытку.

Возможно, вы слишком поздно отправляете намерение в приложение Uber? То есть, после того, как идентификатор продукта (автомобиль Uber) больше не существует на сервере, приложение Uber также не будет выбирать его.

Являются ли эти продукты возвращены с sandbox API или конечными точками API производства?

Можете ли вы проверить идентификатор продукта первым, сделав запрос к GET /v1/products/{product_id} и убедитесь, что вы получили код состояния ответа HTTP OK OK и правильную информацию о продукте в теле ответа?

Смежные вопросы