telegrom bot 发送消息

Posted 杰哥的技术杂货铺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于telegrom bot 发送消息的主要内容,如果未能解决你的问题,请参考以下文章

我的 python discord bot 奇怪地发送消息

Discord bot 随机发送广告链接

如何使用 MS bot 框架从 Teams 私人消息中获取用户上下文

我的 Telegram Bot 无法读取另一个 Telegram Bot 发送的消息

接收从 Facebook BOT 发送的消息

Facebook Messenger Bot 使用回发按钮共享结构化消息