update.getMessage ();
Отримає повідомлення якщо таке взагалі є. (Це личка)
А як бути з груп чатами? У мене він не відловлює повідомлення.
- Бот в чаті є.
- повідомлення пробував відправляти з «/»
- пробував переключити «/ setprivacy» на «Disable»
Треба / setprivacy »на« Disable »і бота треба виключити з групи і заново додати. Була така ж проблема.
А якщо у мене допустимо такий сценарій - користувач відправляє команду / старт
потім бот у нього щось запитає
а потім користувач щось ще відповість
як це реалізувати?
Вся логіка повинна бути в методі onReceiveUpdate:
1. Бот чекає повідомлення від користувача
2. Читає повідомлення і якщо розуміє його то відповідає
Начебто все зробив по уроку, а видає помилку. В чому може бути причина?
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)
код
package test;
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 ();
>
>