添加maven依赖

  1. <dependency>
  2. <groupId>org.telegram</groupId>
  3. <artifactId>telegrambots</artifactId>
  4. <version>4.1</version>
  5. </dependency>

获取TOKEN 和 USERNAME
在telegram 查找 @botfather 点击 start 进入
输入 /newbot 按提示输入name,username创建机器人
记录下token和username
Telegram API的所有查询都必须通过HTTPS提供,并且需要以这种形式呈现:

https://api.telegram.org/bot+TOKEN/METHOD_NAME

例:

https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe

核心代码
telegram bot 接受信息有2种实现方式

Long Polling Bot 长轮询的方式,每隔一段时间主动请求telegram
webhook 方式,telegram 主动下发
这里我们使用第一种方式 继承 TelegramLongPollingBot

  1. public class MyBot extends TelegramLongPollingBot {
  2. @Override
  3. public String getBotUsername() {
  4. // 填写username
  5. return "xxx";
  6. }
  7. @Override
  8. public String getBotToken() {
  9. // 填写token
  10. return "xxx";
  11. }
  12. @Override
  13. public void onUpdateReceived(Update update) {
  14. if (update.hasMessage() && update.getMessage().hasText()) {
  15. SendMessage message = new SendMessage()
  16. .setChatId(update.getMessage().getChatId())
  17. .setText("回复的内容");
  18. try {
  19. execute(message);
  20. } catch (TelegramApiException e) {
  21. e.printStackTrace();
  22. }
  23. }
  24. }

注册机器人
启动main方法机器人就可以工作啦

  1. public class Main {
  2. public static void main(String[] args) {
  3. // 初始化Api上下文
  4. ApiContextInitializer.init();
  5. // 实例化Telegram Bots API
  6. TelegramBotsApi botsApi = new TelegramBotsApi();
  7. try {
  8. // 注册我们的机器人
  9. botsApi.registerBot(new MyBot());
  10. } catch (TelegramApiException e) {
  11. e.printStackTrace();
  12. }
  13. }
  14. }

其他
还有好多方法比如发送照片,音乐,设置内联button,获取group成员(首先要在@botfather处设置/setjoingroups为enable,然后把机器人拉进对应的组)等

请参考 Telegram Bot API

这里以获取group成员为例

  1. // 获取group内成员
  2. private void getChatMember() throws TelegramApiException {
  3. DefaultAbsSender sender = new DefaultAbsSender(new DefaultBotOptions()) {
  4. @Override
  5. public String getBotToken() {
  6. return "xxx";
  7. }
  8. };
  9. GetChatMember getChatMember = new GetChatMember();
  10. getChatMember.setChatId("xxx").setUserId(123);
  11. ChatMember chatMember = sender.execute(getChatMember);
  12. }

参考资料