Меню Рубрики

Как написать бота на java

Простой бот Telegram на Java с нуля

Сегодня мы будем писать простейшего бота Telegram, который будет отвечать на команды. Такая статья была, но писали бота на Питоне.

Java в плане ботов, серверов, плагинов да и вообще программ будет удобнее для меня.

1. Виртуальная машина хоть и долгая, но если обрабатывать события в несколько потоков, то будет работать быстро.(Вообще для многих серверов/мультиплеерных игр в одном потоке не всегда получится обрабатывать события, в Jav’e сделать это гораздо проще)

2. Наличие хорошей документации и Javadoc’ов, которые можно сделать для всех библиотек(не только для системных)

Бот — это профиль в соцсети/мессенджере(в данном случае Telegram) который отвечает на команды.( В любом случае все действия буду происходить после выполнения команды)

Тип чата с ботом — это переписка 1 на 1.

Здесь качать библиотеку Telegram(обязательно with-dependiciens)

IDE можно выбрать любую, я бы порекомендовал eclipse.

Импотрируем библиотеку Телеграма и приступаем.

2.Наследование бота
Для того чтобы отвечать на команды, класс должен наследовать TelegramLongPillingBot

Получить токен и username можно вбив в поиск @BotFather и написать ему /newbot

3.Как же нам добавить в него что-нибудь?

В телеграме нет «приветствующего сообщения», но когда мы нажимаем кнопку «Start» чтобы начать общение с ботом, то автоматом прописывается команда «/start», поэтому для начала добавим именно её. В telegramapi нету метода отправить сообщение по типу send(строка), но мы его создадим, после всех войдов пишем:

А в UpdateReceived дописываем это:

4.Ура, всё получилось, как запустить?
Можно в Runnable JAR File так как у нас есть метод main, но лучше запускать прямо из IDE:

Когда мы запустили бота, зарегистрировали и получили токен у BotFather, то мы можем написать ему /start и увидеть что всё работает. Но бот будет работать только когда он запущен.(Много ему не нужно, за 50-100 рублей/месяц на хостинге можно держать). Также с помощью Telegram API можно отправлять картинки, создавать inline-ботов с кнопками и многое другое, но о этом уже в продолжении…

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник статьи: http://habr.com/ru/sandbox/111328/

Пример использования Java-библиотеки для создания Telegram-бота

Каждый разработчик (и не только), который использует Telegram в повседневной жизни, хотя бы раз задумывался о том, каково это — создать своего бота, на сколько это сложно и какой язык программирования лучше использовать.

На все эти вопросы могу дать самый простой (и, наверно, самый правильный) ответ: все зависит от вас самих, ваших знаний и намерений.

… Но в этой небольшой статье, я покажу, как можно создать своего бота на языке Java и что это довольно интересно и несложно.

Мы будем использовать библиотеку для работы с Telegram Bots API и ее расширение, позволяющее создавать свои команды (‘ /custom_cmd ‘) и обрабатывать их простым способом.

Задачей бота будет являться регистрация пользователя и отправка сообщения от указанного им имени другим пользователям бота.

Создание нового проекта и подготовка

1. Добавление зависимостей в проект

Создадим новый maven-проект и отредактируем pom.xml , добавив в него необходимые зависимости:

Telegram API — библиотека для работы с Telegram Bots API, содержит в себе классы и методы для взаимодействия с сервисами Telegram и некоторые расширения этих классов.

2. Создание аккаунта для бота

Для этого нам необходимо обратиться за помощью к боту BotFather:

  • найдем бота в поиске;
  • выполним команду «/start»;
  • выполним команду «/newbot»;
  • зададим какое-нибудь имя нашему боту (должно заканчиваться на «Bot»). Я назвал его «ExampleOfAnonymizerBot».

После выполнения этих команд мы получим токен, который нам понадобится для использования Bot API. (7xxxxxxx2:Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0)



Реализация

1. Модель анонимного отправителя сообщений

Данные, необходимые нам от каждого пользователя:

  • User mUser — информация о пользователе Telegram;
  • Chat mChat — информация о чате пользователя и бота;
  • String mDisplayedName — имя, от которого пользователь будет посылать сообщения другим пользователям бота.

Добавим сервис, содержащий часто используемые методы для манипулирования множеством анонимных пользователей.

2. Интерфейс бота

Любая кастомная команда должна наследоваться от BotCommand и реализовывать метод
execute(AbsSender sender, User user, Chat chat, String[] strings) , который используется для обработки команд пользователей.

После того как мы обработаем команду пользователя, мы можем послать ему ответ, используя метод execute класса AbsSender , который принимает на вход вышеупомянутый execute(AbsSender sender, User user, Chat chat, String[] strings) .

Здесь и далее чтобы не оборачивать каждый раз метод AbsSender.execute , который может выбросить исключение TelegramApiException , в try-catch , и для того чтобы не прописывать в каждой команде вывод однообразных логов, создадим класс AnonymizerCommand , а наши кастомные команды будем уже наследовать от него (обработку исключений в этом примере оставим):

Определим команды, на которые наш бот будет реагировать:

  • /start — создаст нового Anonymous без имени и добавит его в коллекцию Anonymouses ;

Источник статьи: http://habr.com/ru/post/432548/

Как написать Телеграм-бота на JavaScript

Сегодня будем делать бота — это отличное (и быстрое) занятие, которое развивает уставший мозг и даёт возможность отправить друзьям ссылочку со словами «Смотри, это моё».

Для работы понадобятся

  • Редактор кода, чтобы писать код. Если не знаете, какой выбрать — мы уже рассказывали. Если не умеете писать код, то вот инструкция, как его написать и запустить.
  • Node.js любой версии, выше 0.12. Нужно, чтобы библиотека для ботов заработала. Как установить Node.js.
  • Консоль. Или встроенный в систему вариант, или какой-нибудь другой.
  • VPN. Возможно но не факт, потому что Телеграм работает не везде.

Шаг 1. Регистрируем бота

Находим в поиске Телеграма бота @botFather — это главный инструмент для создания ботов. Набираем в нём /newbot .

Придумываем название и имя боту. Название — то, как он будет подписан в списке контактов. Имя — строка, по которой его можно будет найти. Обратите внимание, что имя должно оканчиваться на bot . В ответ мы получим токен — длинную последовательность символов, которая пригодится нам в будущем. Мы назвали бота echoKeksBot , но вам придётся придумать другое название, потому что это уже занято. Извините.

Шаг 2. Создаём проект

Создаем папку в любом месте и открываем её в консоли. Там пишем npm init -y — эта команда создаст файл package.json , который выглядит примерно так:

Теперь установим node-telegram-bot-api — это библиотека для создания телеграм-ботов на Node.js. Введём команду:

Создадим пустой файл index.js и напишем там самого простого бота, который будет отвечать на любое сообщение:

Шаг 3. Запускаем бота

Тут всё просто, в консоли пишем node index.js , заходим к нашему боту в телеграм и начинаем с ним общаться. Не закрывайте консоль — бот работает только на вашем компьютере, и без консоли он не станет отвечать.

Как видим, бот успешно отвечает. Но бот-повторяха — не интересно, усложним задачу. Пусть бот присылает нам картинку.

Шаг 4. Отсылаем картинку

Добавим картинку с Кексом в папку с проектом. Для отправки изображения используем метод .sendPhoto() — передадим в него id чата и путь до картинки. Получится такой код:

Запускаем бота, проверяем, работает:

Шаг 5. Добавим клавиатуру. И пёсика

Добавим фотографию милого пёсика в корень проекта. Теперь там две картинки.

Создадим конфигурацию для клавиатуры в боте, пусть у нас будет 3 кнопки: «Хочу кота», «Хочу пёсика» и «Пойти учиться».

На нажатия первых двух кнопок мы ответим соответствующим сообщением в Телеграме, а последняя уведёт на внешний ресурс.

Чтобы отличить первые 2 кнопки, воспользуемся полем callback_data , где будем передавать тип кнопки. Для обработки нажатий добавим слушателя на событие callback_query , и в зависимости от значения query.data отправим нужную картинку к пользователю.

Не забудем про возможные ошибки и предложим пользователю попробовать снова, если он ввёл что-то не то. Перезапустим бота и проверим — всё работает. Главное — не закрывать консоль, иначе бот перестанет отвечать.

В следующей части как раз разберёмся, как загрузить и запустить бота на сервере, чтобы он работал, даже если ваш компьютер выключен.

Познакомьтесь с JavaScript бесплатно

На интерактивных тренажёрах. А вместе с JavaScript — бесплатное знакомство с HTML и CSS.

Нажатие на кнопку — согласие на обработку персональных данных

Источник статьи: http://htmlacademy.ru/blog/boost/backend/telegram-bot

Как создать бота на Java который работает с приложением (не Java) без фокуса?

Есть программа (бот) на Java. Есть ДРУГОЕ приложение (Игра) в окне (1024х768).

Нужен бот который будет автоматический выполнять действия в игре.
В Java есть класс Robot:

который подходит для этого (Может эмулировать нажатия, клики мыши ), но этому классу обязательно нужен фокус приложения.

Есть какой нибудь способ решения, который будет работать без фокуса?
(Подойдет любое решение, даже если придется писать эту часть кода на C/C++)

1 ответ 1

Cделать такое можно только с помощью JNI, то есть код придется писать на C/C++.

Рекомендую посмотреть, как устроена внутри библиотека jnativehook, она уже умеет нативно ловить события.

Вызвать C++ код из Java можно так:

1) создать Java-обертку для вызова кода:

2) написать программу на С++ (sendkeys_impl.cpp)

3) сделать заголовок для взаимодействия с Си кодом (sendkeys.h)

4) оформить ее в виде DLL, в C файле (sendkeys.c) указав такую конструкцию:

5) собрать как-то так: g++ -Wl,—add-stdcall-alias -I»%JAVA_HOME%\include» -I»%JAVA_HOME%\include\win32″ -shared -o sendkeys.dll sendkeys.c sendkeys.cpp 6) можно запускать! java SendkeysTest или java -Djava.library.path=. SendkeysTest

Более подробно все это описано в одной из множества инструкций по JNI .

Дальше можно воспользоваться любым туториалом по отправке нажатий клавиш с помощью C++, или задать этот ворос на StackOverflow. Место, куда вписывать соответствующий код, у вас уже имеется.

Если вам нужно посылать произвольные коды, то вам нужен либо SendInput() (он есть на windows 2k/xp и поэтому предпочтителен), или keybd_event() (работает в новых ОС). Еще есть события WM_SYSCOMMAND / WM_KEYDOWN / WM_KEYUP/WM_CHAR события для SendMessage.

Например, вот так можно отправлять сообщения в Notepad с помощью упомянутого выше SendInput :

Или с помощью SendMessage :

(Примеры взяты из вот этого обсуждения на основном StackOverflow)

Нажатия кнопок мыши и ее движение тоже можно отправлять через SendInput :

Дальше уже ваша задача все это правильно склеить и адаптировать под вашу задачу, написание совершенно корректной посылалки клавиш на комбинации Java+C++ не влезет в разумный размер ответа.

Источник статьи: http://ru.stackoverflow.com/questions/489289/%D0%9A%D0%B0%D0%BA-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B1%D0%BE%D1%82%D0%B0-%D0%BD%D0%B0-java-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-%D1%81-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC-%D0%BD%D0%B5-java-%D0%B1%D0%B5%D0%B7-%D1%84%D0%BE%D0%BA%D1%83%D1%81%D0%B0

inaword

Блог о разработке и современных технологиях

Как написать робот для Telegram на java с использованием Eclipse

Эта статья — краткое руководство — как в среде Eclipse написать самый простой рабочий шаблон робота для телеграмма , который в последствии можно расширять и дописывать до полноценного бота.

  1. Открываем eclipe и создаем новый Java проект
  2. Качаем отсюда (выбирать «with-dependencies») библиотеку для создания Telegram роботов
  3. Добавляем эту библиотеку в проект
  4. Создаем класс test.SimpleBot со следующим содержимым:

Собственно, в методе onUpdateReceived сравниваются отправленный пользователем текст с командами робота и отправляются соответствующие сообщения. Чтобы изменить робота просто добавьте свои команды в этот метод.

Может быть полезно:

inaword 02.02.2016 17.08.2017

Читайте также

Базовые тесты для разработчика DApp

Пишем смарт-контракт Ethereum — это просто: Часть 11 — ICO, refund — возврат средств по softcap

Пишем смарт-контракт Ethereum — это просто: Часть 10 — ICO, исходники на Etherscan, типы эмиссии

Стандарт ERC223 и его отличия от ERC20

Огромное спасибо! Кратко и по делу:)

А если Eclipse закрыть, бот не будет работать? Как сделать, чтобы он всегда работал?

Бот будет работать все время пока ваша программу будет запущена. Естественно после закрытия Eclipse программа остановится.
Я запускаю программу бота на отдельном сервере, который у меня постоянно работает.

а как добавить виртуальную клавиатуру?

В методе sendMsg, сразу после строчки «sendMessage.enableMarkdown(true);» добавить следующий код (пример клавиатуры из четырех кнопок).
(И не забудьте обновить библиотеку, в статье по ссылке она обновлена)

После добавления вирт клавиатуры, все появилось и все вроде работает, но
сыпет эксепшены:

дек 06, 2016 12:00:28 PM org.telegram.telegrambots.logging.BotLogger severe
SEVERE: BOTSESSION
org.telegram.telegrambots.exceptions.TelegramApiRequestException: Error getting updates: [409] Conflict: terminated by other long poll or webhook
at org.telegram.telegrambots.api.methods.updates.GetUpdates.deserializeResponse(GetUpdates.java:96)
at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$ReaderThread.run(DefaultBotSession.java:177)

дек 06, 2016 12:00:28 PM org.telegram.telegrambots.logging.BotLogger severe
SEVERE: BOTSESSION
org.telegram.telegrambots.exceptions.TelegramApiRequestException: Error getting updates: [409] Conflict: terminated by other long poll or webhook
at org.telegram.telegrambots.api.methods.updates.GetUpdates.deserializeResponse(GetUpdates.java:96)
at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$ReaderThread.run(DefaultBotSession.java:177)

дек 06, 2016 12:00:28 PM org.telegram.telegrambots.logging.BotLogger severe
SEVERE: BOTSESSION
org.telegram.telegrambots.exceptions.TelegramApiRequestException: Error getting updates: [409] Conflict: terminated by other long poll or webhook
at org.telegram.telegrambots.api.methods.updates.GetUpdates.deserializeResponse(GetUpdates.java:96)
at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$ReaderThread.run(DefaultBotSession.java:177)

Скорее всего вы запустили две копии робота.

update.getMessage();
Получит сообщение если такое вообще есть. (это личка)
А как быть с груп чатами? У меня он не отлавливает сообщения.
— Бот в чате есть.
— сообщения пробовал отправлять с «/»
— пробовал переключить «/setprivacy» на «Disable»

Надо/setprivacy» на «Disable» и бота надо исключить из группы и заново добавить. Была такая же проблема.

А если у меня допустим такой сценарий — пользователь отправляет команду /старт
потом бот у него что-то спросит
а потом пользователь что-то еще ответит

Вся логика должна быть в методе onReceiveUpdate:
1. Бот ожидает сообщение от пользователя
2. Читает сообщение и если понимает его то отвечает

Спасибо! Очень информативно! Вы не думали создать серию видео уроков написания на java? Думаю многим было бы полезно.

Уроков по Java очень много и много очень хороших и простых книг. Но если есть интересующие вас темы по каким-то слабо освещенным вопросам, то можно подумать…

Exception in thread «main» com.google.inject.ConfigurationException: Guice configuration errors:

1) No implementation for org.telegram.telegrambots.generics.BotSession was bound.
while locating org.telegram.telegrambots.generics.BotSession

1 error
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1045)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1004)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1054)
at org.telegram.telegrambots.ApiContext.getInstance(ApiContext.java:25)
at org.telegram.telegrambots.TelegramBotsApi.registerBot(TelegramBotsApi.java:83)
at com.nastin.bot.SimpleBot.main(SimpleBot.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

Да действительно. Библиотеку разработчики изменили. Статью обновил.
В main добавьте самую первую строчку:

Спасибо еще раз! Благодаря Вашему вступительному уроку по созданию бота на джаве, мне удалось двинуться дальше. Хотел у Вас спросить такое: сдеть заложенна схема общения с ботом вопрос-ответ. Как можно сделать так, что бы бот через определленый промежуток времени присылал уведомления?

К сожалению с инлайн режимом не работал, но думаю ответ кроется в этой строчке:
update.getCallbackQuery().getData() — возвращает ответ.

Пример отправляет сообщение «Вам пришли новости» каждые пять секунд после того как пользователь ввел команду «/start».

После того как пользователь удалит бота — нужно удалить поток, отправляющий сообщения, иначе бот будет кидать Exception. В примере этого нет, но об этом стоит помнить.

А как сделать локализацию? Может подскажете?

Язык интерфейса меняется следующим образом:

  • Подписываетесь на робот @telerobot
  • Пишите ему: Locale Android (если у вас андройд) или Locale iOS — соответственно если iphone
  • Загрузите файл нажатием на сообщение с ним. Нажмите на знак с тремя точками в блоке сообщения и выберите «Apply localization file». Если у вас iPhone, то нажмите на файл выберите “Apply localization file”.

Будьте добры напишите пожалуйте пример :

для сценария
погода — клик

response: current weather click Send /current, or weather for three days sends /weatherthree

sendMsg(message, current weather);
> else if(message == «/weatherthree»)

respone:enter your location

Не работает( выдает ошибку в этой и еще некоторых строках
import org.telegram.telegrambots.TelegramApiException;

Какую ошибку выдаёт? Вариантов не много — либо библиотека другой версии, либо вы забыли подключить библиотеку.

Попробовал развернуть пример в NetBeans — работает! Только ссылка на гитхабовскую библиотеку уже битая.

У меня следующая задача: клиенты пишут боту вопросы, эти вопросы бот перефутболивает операторам (point-to-point), операторы отвечают боту, бот возвращает ответы к соответствующим клиентам.

Возникает вопрос с параллелизмом: если пишут сразу несколько клиентов, то не перемешаются ли сообщения (в одной сессии)? И как переслать ответ нужному клиенту — запоминать ID сообщения или чата?

Да,ссылка битая.Подскажите,а где вы тогда скачали библиотеку?

Вышла новая версия библиотеки. Статью исправил.
Качать отсюда — https://github.com/rubenlagus/TelegramBots/releases/
Там обязательно выбирать «with dependencies»

Добрый день, уважаемый автор.
Большое вам спасибо за небольшой, но крайне информативный урок.
Можете ещё подсказать куда копать в решении задачи написания собственного маленького клиента к телеграмму под android?
Интернет даёт ссылку на официальную библиотеку tdlib (Telegram Database Library) но я никак не могу найти ни одного достаточно простого примера её использования.

Добрый день, ругается на setOneTimeKeyboad, List и ArrayList. Видать не хватает какой-то библиотеки, хотя я установил самую последнюю версию. (это из кода с виртуальной клавиатурой, в сообщении выше)

setOneTimeKeyboad(false); — тут пропущена буква r в слове Keyboard. должно быть:
setOneTimeKeyboard(false);
Вы скопировали текст из комментария. Там поправлю.

Насчет List и ArrayList — это стандартные коллекции из библиотеки Java. Добавьте импорты:

import java.util.List;
import java.util.ArrayList;

Добрый день, запускаю и получаю ошибку. Интернет через прокси, может в этом дело?

авг 16, 2017 5:19:34 PM org.apache.http.impl.execchain.RetryExec execute
INFO: Retrying request to ->https://api.telegram.org:443
org.telegram.telegrambots.exceptions.TelegramApiRequestException: Error executing setWebook method
at org.telegram.telegrambots.bots.TelegramLongPollingBot.clearWebhook(TelegramLongPollingBot.java:56)
at org.telegram.telegrambots.TelegramBotsApi.registerBot(TelegramBotsApi.java:120)
at test.SimpleBot.main(SimpleBot.java:19)
Caused by: java.net.SocketException: Socket is not connected: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)

Подскажите пожалуйста, как заставить бота отправить сообщение всем, кто на него подписан?

Вроде всё сделал по уроку, а выдаёт ошибку. В чём может быть причина?
Exception in thread «main» java.lang.ClassNotFoundException: Main
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)

import org.telegram.telegrambots.exceptions.TelegramApiException;
import org.telegram.telegrambots.ApiContextInitializer;
import org.telegram.telegrambots.TelegramBotsApi;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;

public class SimpleBot extends TelegramLongPollingBot <

public static void main(String[] args) <
ApiContextInitializer.init();
TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
try <
telegramBotsApi.registerBot(new SimpleBot());
> catch (TelegramApiException e) <
e.printStackTrace();
>
>

@Override
public String getBotUsername() <
return «———«;
>

@Override
public String getBotToken() <
return «—————————«;
>

@Override
public void onUpdateReceived(Update update) <
Message message = update.getMessage();
if (message != null && message.hasText()) <
if (message.getText().equals(«/help»))
sendMsg(message, «Привет, я робот»);
else
sendMsg(message, «Я не знаю что ответить на это»);
>
>

private void sendMsg(Message message, String text) <
SendMessage sendMessage = new SendMessage();
sendMessage.enableMarkdown(true);
sendMessage.setChatId(message.getChatId().toString());
sendMessage.setReplyToMessageId(message.getMessageId());
sendMessage.setText(text);
try <
sendMessage(sendMessage);
> catch (TelegramApiException e) <
e.printStackTrace();
>
>

Точно скачали библиотеку по ссылке и добавили в проект?

Подскажите как отправить документ в чат, пробовал аналогичным образом метод sendDocument создать, но ошибки:
org.telegram.telegrambots.exceptions.TelegramApiRequestException: Error sending document: [400] Bad Request: wrong persistent file_id specified: Wrong character in the string
at org.telegram.telegrambots.api.methods.send.SendDocument.deserializeResponse(SendDocument.java:165)
at org.telegram.telegrambots.bots.DefaultAbsSender.sendDocument(DefaultAbsSender.java:163)
at Bot.sendDocument(Bot.java:103)
at Bot.onUpdateReceived(Bot.java:66)
at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:271)

Привет,
у меня есть бот который отвечает на запросы и есть кнопки внизу экрана(благодаря inaword). Мне требуется сделать что бы когда пользователь нажимал на кнопки, бот задавал вопросы, человек отвечает на несколько вопросов, и так что бы я потом получил все данные которые ввел пользователь.

Господа, только начал изучать Java, поэтому малость «подтормаживаю»… Нужна ваша помощь…!
Есть такая вот «хотелка»…
Требуется, чтобы бот получал от пользователей некие данные (числовые, целые), производил бы с ними некоторые операции и отправлял бы результат в определенную группу в Telegram… Например:
Один из пользователей отправил боту такой набор данных —
500 (Дима собрал 500 яблок в саду)
15 (он распределил их по 15-ти корзинам)
6 (в шести корзинах были отобраны только красные яблоки)
4 (в четырех — только зелёные)
5 (в пяти корзинах — смешанного цвета)

Таких пользователей, к примеру — 7.
Задача бота, например, сделать сумму по каждой из позиций и отправить в группу:
1. Упорядоченные данные по каждому из пользователей
2. Итог (сумму) по всем пользователям.

Возможно? Реально? Насколько сложно? Где и что почитать? Может кто черкнёт какие «наброски»? Спасибо! И да, статейка годная!

Привет, спасибо большое за столь информативную статью, но у меня есть вопрос: Как просто отправить сообщение с бота? Я имею ввиду вводишь код, перезагружаешь бота, и он отправляет сообщение. Все мои попытки проводили к тому, что бот отправлял сообщение только отвечая на реплику юзера.

Источник статьи: http://inaword.ru/bez-rubriki/kak-napisat-robot-dlya-telegram-na-java-s-ispolzovaniem-eclipse/


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии