You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
4.0 KiB
114 lines
4.0 KiB
|
10 years ago
|
Let us create a simple echo bot
|
||
|
|
|
||
|
|
- follow [these](https://github.com/rubenlagus/TelegramBots/blob/master/eclipse%20configuration.md) steps to work with eclipse
|
||
|
|
|
||
|
|
- got to org.telegram and edit `BuildVars.java` and fill it out
|
||
|
|
|
||
|
|
|
||
|
|
```
|
||
|
|
public static final Boolean debug = true;
|
||
|
|
public static final String pathToLogs = "./";
|
||
|
|
public static final String linkDB = "jdbc:mysql://[IP_OF_YOU_MYSQL_SERVER]:3306/[DATABASE]?useUnicode=true&characterEncoding=UTF-8";
|
||
|
|
public static final String controllerDB = "com.mysql.jdbc.Driver";
|
||
|
|
public static final String userDB = "[YOUR_DB_USERNAME]";
|
||
|
|
public static final String password = "[YOUR_SECRET_DB_PASSWORD]";
|
||
|
|
```
|
||
|
|
|
||
|
|
For our project those settings are enough.
|
||
|
|
|
||
|
|
[DATABASE]: your database. i.e. myProject
|
||
|
|
|
||
|
|
|
||
|
|
- next, go to org.telegram and edit `BotConfig.java`
|
||
|
|
Here we must fill in our login credentials for our bot.
|
||
|
|
|
||
|
|
```
|
||
|
|
public static final String TOKENMYPROJECT = "[YOUR_TOP_SECRET_TOKEN]";
|
||
|
|
public static final String USERNAMEMYPROJECT = "myProjectBot";
|
||
|
|
```
|
||
|
|
[YOUR_TOP_SECRET_TOKEN]: your token you got from the [BotFather](https://telegram.me/BotFather)
|
||
|
|
|
||
|
|
|
||
|
|
- go to org.telegram.updatehandlers and create a new class. This class is responsible for your bot actions. (in our case just return the text back). This class should extending `TelegramLongPollingBot`.
|
||
|
|
|
||
|
|
|
||
|
|
It should look similiar like this:
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
```
|
||
|
|
package org.telegram.updateshandlers;
|
||
|
|
|
||
|
|
import org.telegram.telegrambots.api.objects.Update;
|
||
|
|
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
|
||
|
|
|
||
|
|
public class MyProjectHandler extends TelegramLongPollingBot {
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public String getBotUsername() {
|
||
|
|
// TODO Auto-generated method stub
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public void onUpdateReceived(Update arg0) {
|
||
|
|
// TODO Auto-generated method stub
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public String getBotToken() {
|
||
|
|
// TODO Auto-generated method stub
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
Then you can program your bot. First edit getBotToken() and getBotUsername(). Simply return your credentials mentioned in BotConfig. So for example `return BotConfig.USERNAMEMYPROJECT;`
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
The onUpdateReceived() method could look like this:
|
||
|
|
|
||
|
|
```
|
||
|
|
@Override
|
||
|
|
public void onUpdateReceived(Update update) {
|
||
|
|
|
||
|
|
//check if the update has a message
|
||
|
|
if(update.hasMessage()){
|
||
|
|
Message message = update.getMessage();
|
||
|
|
|
||
|
|
//check if the message has text. it could also contain for example a location ( message.hasLocation() )
|
||
|
|
if(message.hasText()){
|
||
|
|
|
||
|
|
//create a object that contains the information to send back the message
|
||
|
|
SendMessage sendMessageRequest = new SendMessage();
|
||
|
|
sendMessageRequest.setChatId(message.getChatId().toString()); //who should get the message? the sender from which we got the message...
|
||
|
|
sendMessageRequest.setText("you said: " + message.getText());
|
||
|
|
try {
|
||
|
|
sendMessage(sendMessageRequest); //at the end, so some magic and send the message ;)
|
||
|
|
} catch (TelegramApiException e) {
|
||
|
|
//do some error handling
|
||
|
|
}//end catch()
|
||
|
|
}//end if()
|
||
|
|
}//end if()
|
||
|
|
|
||
|
|
}//end onUpdateReceived()
|
||
|
|
```
|
||
|
|
- go to the `Main.java` in org.telegram and register your updatehandler
|
||
|
|
```
|
||
|
|
public static void main(String[] args) {
|
||
|
|
|
||
|
|
TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
|
||
|
|
try {
|
||
|
|
telegramBotsApi.registerBot(new MyProjectHandler());
|
||
|
|
} catch (TelegramApiException e) {
|
||
|
|
BotLogger.error(LOGTAG, e);
|
||
|
|
}//end catch()
|
||
|
|
}//end main()
|
||
|
|
```
|