2 changed files with 116 additions and 0 deletions
@ -0,0 +1,113 @@ |
|||
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() |
|||
``` |
|||
Loading…
Reference in new issue