本篇将电报群机器人,通过 Webhook 回调接口,返回的消息体,收集和展示出来。 便于对电报群消息的解析和监控处理。
1. 消息的内容,可能包含表情,视频,图片等;用户的昵称也会有表情
如果数据库采用 MySQL,需要将编码集改为 utf8mb4,并且,应用层的连接 encoding 也需要改为 utf8mb4 字符集。
MySQL 支持表情字符的保存详细信息请看之前的博客:
Aliyun RDS Change MySQL Charset From utf8 To utf8mb4
2. 关于用户的个人信息模块,一开始没有返回 username,运行后期才出现
// 系统上线后期,发现,用户结构内,包含 username
{
"update_id": 671333111,
"message": {
"message_id": 10014,
"from": {
"id": 531161011,
"is_bot": false,
"first_name": "小王",
"username": "telegram18888"
},
"chat": {
"id":-1000000000007,
"title":"rubyfans",
"username":"rubyfans",
"type":"supergroup"
},
"date": 1517991125,
"new_chat_participant": {
"id": 527651111,
"is_bot": false,
"first_name": "jack",
"username": "jack2018"
},
"new_chat_member": {
"id": 527651111,
"is_bot": false,
"first_name": "jack",
"username": "jack2018"
},
"new_chat_members": [
{
"id": 527651111,
"is_bot": false,
"first_name": "jack",
"username": "jack2018"
}
]
},
"bot": { }
}
// 聊天消息
{
"update_id":67000000,
"message":{
"message_id":41,
"from":{
"id":4500000001,
"is_bot":false,
"first_name":"技术支持",
"last_name":"Tech Support",
"language_code":"zh-Hans-CN"
},
"chat":{
"id":-1000000000007,
"title":"rubyfans",
"username":"rubyfans",
"type":"supergroup"
},
"date":1517456341,
"text":"hello"
},
"bot":{ }
}
// 邀请用户进群
{
"update_id":67000001,
"message":{
"message_id":12,
"from":{
"id":4500000001,
"is_bot":false,
"first_name":"技术支持",
"last_name":"Tech Support",
},
"chat":{
"id":-1000000000007,
"title":"rubyfans",
"username":"rubyfans",
"type":"supergroup"
},
"date":1517400266,
"new_chat_participant":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
},
"new_chat_member":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
},
"new_chat_members":[
{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
}
]
},
"bot":{ }
}
// 用户自己进群
{
"update_id":67000002,
"message":{
"message_id":43,
"from":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
"language_code":"zh-Hans-CN"
},
"chat":{
"id":-1000000000007,
"title":"rubyfans",
"username":"rubyfans",
"type":"supergroup"
},
"date":1517464283,
"new_chat_participant":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
"language_code":"zh-Hans-CN"
},
"new_chat_member":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
"language_code":"zh-Hans-CN"
},
"new_chat_members":[
{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
"language_code":"zh-Hans-CN"
}
]
},
"bot":{ }
}
// 用户被踢出群
{
"update_id":67000003,
"message":{
"message_id":22,
"from":{
"id":4500000001,
"is_bot":false,
"first_name":"技术支持",
"last_name":"Tech Support",
"language_code":"zh-CN"
},
"chat":{
"id":-1000000000007,
"title":"rubyfans",
"username":"rubyfans",
"type":"supergroup"
},
"date":1517406720,
"left_chat_participant":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
},
"left_chat_member":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
}
},
"controller":"bots",
"action":"telegram",
"bot":{ }
}
// 用户自行离开群
{
"update_id":67000004,
"message":{
"message_id":42,
"from":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
"language_code":"zh-Hans-CN"
},
"chat":{
"id":-1000000000007,
"title":"rubyfans",
"username":"rubyfans",
"type":"supergroup"
},
"date":1517464264,
"left_chat_participant":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
"language_code":"zh-Hans-CN"
},
"left_chat_member":{
"id":520000001,
"is_bot":false,
"first_name":"Henry",
"last_name":"Li"
"language_code":"zh-Hans-CN"
}
},
"bot":{ }
}
请参考上一篇文章 Telegram Bot API Develop
2018-02-08