添加maven依赖
<dependency><groupId>org.telegram</groupId><artifactId>telegrambots</artifactId><version>4.1</version></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
public class MyBot extends TelegramLongPollingBot {@Overridepublic String getBotUsername() {// 填写usernamereturn "xxx";}@Overridepublic String getBotToken() {// 填写tokenreturn "xxx";}@Overridepublic void onUpdateReceived(Update update) {if (update.hasMessage() && update.getMessage().hasText()) {SendMessage message = new SendMessage().setChatId(update.getMessage().getChatId()).setText("回复的内容");try {execute(message);} catch (TelegramApiException e) {e.printStackTrace();}}}
注册机器人
启动main方法机器人就可以工作啦
public class Main {public static void main(String[] args) {// 初始化Api上下文ApiContextInitializer.init();// 实例化Telegram Bots APITelegramBotsApi botsApi = new TelegramBotsApi();try {// 注册我们的机器人botsApi.registerBot(new MyBot());} catch (TelegramApiException e) {e.printStackTrace();}}}
其他
还有好多方法比如发送照片,音乐,设置内联button,获取group成员(首先要在@botfather处设置/setjoingroups为enable,然后把机器人拉进对应的组)等
请参考 Telegram Bot API
这里以获取group成员为例
// 获取group内成员private void getChatMember() throws TelegramApiException {DefaultAbsSender sender = new DefaultAbsSender(new DefaultBotOptions()) {@Overridepublic String getBotToken() {return "xxx";}};GetChatMember getChatMember = new GetChatMember();getChatMember.setChatId("xxx").setUserId(123);ChatMember chatMember = sender.execute(getChatMember);}
