telegrom bot 发送消息

一、获取bot token

这是所有开发者的必经之路,此仪式的目的在于获取telegram的授权以及一个独特的bot token,此token将在下文的编程的环节再次发挥作用。

  • 首先在telegram中搜索 botfather,并和botfather开始对话:

  • 按下"/start"之后,botfather会回复一堆操作指令给你

  • 紧接着回复"/newbot"开始创建你的bot,botfather会要求你输入bot的名字和bot用户名

注意:

bot名会显示在搜索界面,而bot的username在搜索bot和添加bot入group的时候会起作用(你无法通过搜索bot名来添加bot如群组)。

username必须以bot或者_bot(不区分大小写)结尾:如ABCBot,ABC_bot。

  • 完成了这两项后,botfather会给你bot专属的token:

例如这种格式:

5704966335:AAE25NY-PHY2ESyNroxf9XlrJtvZJsQ98FA
  • 创建机器人后,需要访问以下机器人,进行激活,访问链接名称如下:
    t.me/bot名称

注意:一定要点击该链接进行激活,否则将无法进行后续操作

二、机器人基本信息

2.1 获取机器人基本信息

获取机器人的基本信息,包括chat_id等

你可以在注册Bot后将以下的URL复制在浏览器的网址栏中,并将"““Your Token””"替换为你获取的Token:

https://api.telegram.org/bot'''Your Token'''/getupdates

或者在服务器中进行请求:

curl  https://api.telegram.org/bot5704966335:AAE25NY-PHY2ESyNroxf9XlrJtvZJsQ98FA/getUpdates

你会得到以下Message:

{
	"ok": true,
	"result": [{
		"update_id": 192494607,
		"message": {
			"message_id": 1,
			"from": {
				"id": 1872284876,
				"is_bot": false,
				"first_name": "test",
				"username": "test",
				"language_code": "zh-hans"
			},
			"chat": {
				"id": 1872284876,
				"first_name": "test",
				"username": "test",
				"type": "private"
			},
			"date": 1664535992,
			"text": "/start",
			"entities": [{
				"offset": 0,
				"length": 6,
				"type": "bot_command"
			}]
		}
	}]
}

在Telegram中,message以 json ( javascript object notation)的形式被包装和发送,它的本质是nested dictionary,也就是dictionary包了一层dictionary。在之后我们将用json作为我们储存数据的形式。

2.2 向机器人发送信息

同样的,如果你在地址栏中键入如下URL:

https://api.telegram.org/bot'''Your Token'''/sendMessage?chat_id="Some Chat id"&text="Hello Telegram bot"

并将你的Token和你想要发送消息的人的chat ID,你的Bot就会将“Hello Telegram bot”发送给指定用户。

  • Your Token:代表使用哪个机器人发送消息
  • chat_id:代表你给哪个用户发送消息,某个用户的chat_id

或者在服务器中进行请求

curl https://api.telegram.org/bot5704966335:AAE25NY-PHY2ESyNroxf9XlrJtvZJsQ98FA/sendMessage?chat_id="1872284876"\&text="Hello Telegram bot"

形式类似地,Telegram规定了很多功能,比如sendMessage, sendPhoto等,但我们不会用每次在地址栏中键入指令如此繁琐的方式来控制我们的Bot,instead 我们将通过一个功能强大的名为”Telepot“的python package 来制作Bot。

使用golang简单的实现一个http请求

func ClearBackZero(message string) {
	response, err := http.Post(
		"https://api.telegram.org/bot5323458625:AAEr9funZAd3DW_BTXfV1b46y_IK6qvli9w/sendMessage",
		"application/x-www-form-urlencoded",
		strings.NewReader(fmt.Sprintf("chat_id=1872283875&text=%v", message)),
		)
	if err != nil {
		panic(err)
	}
	defer response.Body.Close()
	_, err = ioutil.ReadAll(response.Body)
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用以下代码来创建一个Java Telegram Bot,并发送一条消息: 首先,您需要导入所需的库: ```java import org.telegram.telegrambots.ApiContextInitializer; import org.telegram.telegrambots.bots.TelegramLongPollingBot; import org.telegram.telegrambots.meta.api.methods.send.SendMessage; import org.telegram.telegrambots.meta.api.objects.Update; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; ``` 接下来,您需要创建一个类来扩展TelegramLongPollingBot: ```java public class MyBot extends TelegramLongPollingBot { @Override public void onUpdateReceived(Update update) { // 处理更新事件 } @Override public String getBotUsername() { // 返回机器人的用户名 return "my_bot_username"; } @Override public String getBotToken() { // 返回机器人的token return "my_bot_token"; } } ``` 在上面的代码中,您需要将“my_bot_username”和“my_bot_token”替换为您自己的机器人用户名和token。 最后,您可以使用以下代码向用户发送一条消息: ```java public static void main(String[] args) { // 初始化API上下文 ApiContextInitializer.init(); // 创建一个新的Telegram Bot MyBot bot = new MyBot(); // 创建一个新的发送消息对象 SendMessage message = new SendMessage() .setChatId(chat_id) // 设置要发送消息的聊天ID .setText("Hello, World!"); // 设置要发送消息文本 try { // 使用bot的execute方法发送消息 bot.execute(message); } catch (TelegramApiException e) { e.printStackTrace(); } } ``` 在上面的代码中,您需要将“chat_id”替换为要发送消息的聊天ID。您可以通过向机器人发送一条消息,并在Java代码中打印更新对象的chat_id属性来找到聊天ID。 请注意,您需要在Telegram Bot API网站上注册一个机器人并获取其token,然后才能使用该机器人。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值