Uber: как получить любимые местоположения пользователя для размещения в URI с глубокими ссылками

В настоящее время я делаю приложение, которое включает в себя функцию, позволяющую пользователю взять Uber домой одним нажатием кнопки. Я узнал, что диплинкинг делает свое дело. Однако я не совсем уверен, как я могу получить широту и долготу дома пользователя. Я был бы очень признателен за вашу помощь в этом вопросе. Хорошего дня. Показан способ получения uri для диплинкинга.

 private String getUberUri() {
    StringBuilder uberUri = new StringBuilder("uber://?action=setPickup&client_id=LNC3kco5fh8RGBhJF9hJtqRKPSPCxMt-");
    uberUri.append("&pickup=my_location");
    uberUri.append("&dropoff[nickname]=").append(placeBundle.getString("NAME", "Dropoff"));
    uberUri.append("&dropoff[latitude]=").append(placeBundle.getDouble("PLACE_LAT"));
    uberUri.append("&dropoff[longitude]=").append(placeBundle.getDouble("PLACE_LNG"));

    return uberUri.toString();
}

Это кнопка onClickListener:

Button uberButton = (Button) findViewById(R.id.uberButton);
    uberButton.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (isPackageInstalled("com.ubercab")) {
                        Intent uberIntent = new Intent();
                        uberIntent.setData(Uri.parse(getUberUri()));
                        mActivity.startActivity(uberIntent);
                    } else {
                        Toast.makeText(mActivity, "Please install Uber", Toast.LENGTH_SHORT).show();
                        Uri uberPlayStoreUri = Uri.parse(
                                "https://play.google.com/store/apps/details?id=com.ubercab");
                        Intent uberIntent = new Intent(Intent.ACTION_VIEW, uberPlayStoreUri);
                        uberIntent.setPackage("com.android.vending");
                        mActivity.startActivity(uberIntent);
                    }
                }
            }
    );

person dumpling_san    schedule 14.11.2017    source источник


Ответы (1)


Доступны две конечные точки API Uber для установки рабочего и домашнего местоположения и их получения.

Если вы хотите установить свой домашний или рабочий адрес, вам нужно использовать конечную точку «PUT /v1.2/places/{place_id}». Где «place_id» может быть домом и работой.

Чтобы получить предопределенные местоположения, вам нужно использовать: "GET /v1.2/places/{place_id}"

Пример запроса:

curl -H 'Авторизация: носитель' \ -H 'Принимаемый язык: en_US' \ -H 'Тип содержимого: application/json' \ 'https://api.uber.com/v1.2/places/work'

Ответ:

{ "address": "685 Market St, Сан-Франциско, Калифорния 94103, США" }

Единственным ограничением является то, что вам нужно будет проанализировать адрес, чтобы получить «end_latitude» и «end_longitude».

Существует также вариант, когда вы делаете запрос на поездку, чтобы использовать следующие параметры:

"start_place_id": "дом", "end_place_id": "работа"

person Sasa Jovanovic    schedule 14.11.2017