Как записать текущее местоположение в Telegram bot в базу данных.

206
13 мая 2018, 21:40

Необходимо реализовать подписку на ежедневный прогноз погоды. Не получатся "захватить" параметры для текущего местоположения при команде "/subscribe".

Вот кусок кода:

public class Bot extends TelegramLongPollingBot {
public void onUpdateReceived(Update update) {
    if (update.hasMessage()) {
        String command = update.getMessage().getText();
        Message message = update.getMessage();
        long chat_id = update.getMessage().getChatId();
        Float latitude = message.getLocation().getLatitude();
        Float longitude = message.getLocation().getLongitude();
        if (message.hasLocation()) {
            SendMessage sendMessage = new SendMessage();
            String weatherResponse = "";
            //текущая погода
            try {
                weatherResponse = Weather.getInstance().currentWeather(latitude, longitude);
            } catch (IOException e) {
                e.printStackTrace();
            }
            sendMessage.setText(weatherResponse);
            sendMessage.setChatId(chat_id);
            try {
                execute(sendMessage);
            } catch (TelegramApiException e) {
                e.printStackTrace();
            }
            //прогноз погоды на ближайшие сутки
            try {
                weatherResponse = Weather.getInstance().forecastWeather(latitude, longitude);
            } catch (IOException e) {
                e.printStackTrace();
            }
            sendMessage.setText(weatherResponse).setChatId(chat_id);
            try {
                execute(sendMessage);
            } catch (TelegramApiException e) {
                e.printStackTrace();
            }
         }else if (command.equals("/subscribe")) { // подписка на прогноз погоды
                Database database = new Database();
                try {
                    database.WriteDB(message.getChatId(),
                            message.getChat().getUserName(),
                            message.getChat().getFirstName(),
                            message.getChat().getLastName(),
                            message.getLocation().getLatitude(), //здесь значение параметра равно NULL
                            message.getLocation().getLongitude()); //здесь значение параметра равно NULL
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                SendMessage sendMsg = new SendMessage();
                sendMsg.setChatId(chat_id).setText("Thanks for subscribe!!!");
                try {
                    execute(sendMsg);
                } catch (TelegramApiException e) {
                    e.printStackTrace();
                }
               try {
                    execute(sendMsg);
                } catch (TelegramApiException e) {
                    e.printStackTrace();
                }
            } else if (command.equals("/unsubscribe")) { // отписка от прогноза погоды
        }
    }
}....................

Не могу сообразить как реализовать связь между отправкой текущего местоположения и командой подписки("/subscribe").

READ ALSO
как получить значение radiobutton в JSP?

как получить значение radiobutton в JSP?

У меня есть JSP страница, в которой список radioButton заполняется так:

228
Можно ли как-то у инициализированного родителя перехватить поле?

Можно ли как-то у инициализированного родителя перехватить поле?

В программе при открытии окна инициализируются объекты: родитель и его наследникиУ родителя во время инициализации заполняется некое поле,...

213
Матричные индексы

Матричные индексы

Я использую библиотеку ejml для написания математических алгоритмов на javaЯ думаю, что это очень полезно, но мне нужно знать, есть ли быстрый...

232