tgBot建设指南

欢迎你来读这篇博客,这篇博客主要是关于tg机器人自定义建设的分享。
其中包括了关于我的经验和收集的知识分享。

tg

bot father

BotFather是所有tg机器人的管理超集。自建所有机器人都需要你去关注。通过它去申请。命令行输入/help,帮助你快速入门。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// 回声机器人example code, 在script.google.com 发布web应用
function doGet(e){
return HtmlService.createHtmlOutput("Hello World!! No, this link should be hidden!!!");
}


function doPost(e){
var dataFromTelegram = {
"method": "post",
"payload": e.postData.contents
}
var body = JSON.parse(e.postData.contents);

body.message.chat.id = body.message.chat.id + '';

var payload = preparePayload(body);
var data = {
"method": "post",
"payload": payload
}

var dataToTelegram = {
"method": "post",
"payload": payload
}

UrlFetchApp.fetch("https://api.telegram.org/bot6304269456:AAGuHC11OZtYZ6fPUbeNOXa2CneIo5M05jE/", data);
// UrlFetchApp.fetch("https://api.telegram.org/bot-- 此处填入你的bot token--/", data);
}
function preparePayload(body){
var payload;

if (body.message.text){
payload = {
"method": "sendMessage",
"chat_id": body.message.chat.id,
"text": body.message.text,
}

}
else if (body.message.sticker){
payload = {
"method": "sendSticker",
"chat_id": body.message.chat.id,
"sticker": body.message.sticker.file_id
}
}
else if (body.message.photo){
array = body.message.photo;
text = array[1];
payload = {
"method": "sendPhoto",
"chat_id": body.message.chat.id,
"photo": text.file_id
}
}
else {
payload = {
"method": "sendMessage",
"chat_id": body.message.chat.id,
"text": "Try other stuff"
}
}
return payload
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
// code.gs 去tuling123.com 注册账号。开通机器人,到script.google.com 发布下面代码,按照提示修改。
function doPost(e) {
var body = JSON.parse(e.postData.contents);
if (!checkIsMyMessage(body)){
return;
}

if (body.message && body.message.chat){
body.message.chat.id = body.message.chat.id + '';
}

var payload = tulinBotPayload(body);
var payloads;

if (Array.isArray(payload)){
payloads = payload;
} else {
payloads = [payload]
}

for (var i = 0; i < payloads.length; i++){
payload = payloads[i];
if (payload){
var res = PostTelegram(payload);
}
}

}
function tulinBotPayload(body) {
var payload;
var chatId = body.message.chat.id;
payload = {
"method": "sendMessage",
"chat_id": chatId,
"text": "",
"disable_web_page_preview": true,
"reply_to_message_id": body.message.message_id,
};

var tulinReq = {
"reqType": 0,
"perception": {
"inputText": {
// tulinjiqirenbot 改成你自己机器人的名字
"text": body.message.text.replace("@tulinjiqirenBot", "")
}

},
"userInfo": {
// 改成你自己的图灵机器人的apikey 和 userId
"apiKey": "4e8395e7721046e38e9c610de725edd7",
"userId": "339657"
}
};


var data = {
'contentType': 'application/json',
"method": "post",
"payload": JSON.stringify(tulinReq)
};

var response = UrlFetchApp.fetch("http://openapi.tuling123.com/openapi/api/v2", data);
var res = JSON.parse(response);

if (res.results && res.results[0].values && res.results[0].values.text) {
payload.text = res.results[0].values.text;
}
return payload;
}
function isPrivate(body) {
var share = getShareObject(body);
var chat = share.chat;
if (chat.type === "private") {
return true;
}
return false;
}
function PostTelegram(payload) {
var data = {
'contentType': 'application/json',
"method": "post",
"payload": JSON.stringify(payload)
};

// 改成你自己机器人的 API token
var response = UrlFetchApp.fetch("https://api.telegram.org/bot750371992:AAGTJC08Gg3g9I-gVm6BkAb30wsMVyQMbUI/", data);
var res = JSON.parse(response);
return res;
}
function checkIsMyMessage(body){
var text = body.message.text;

if (isPrivate(body)){
return true;
}

if (body.message.reply_to_message) {
//这里的ID要改成你自己机器人的ID, 之前视频里忘讲了
if (body.message.reply_to_message.from.id == 750371992) {
return true;
}
}

// 如果找不到机器人的ID, 可以用以下这段代码代替, 换成你自己机器人的名字
// if (body.message.reply_to_message) {
// if (body.message.reply_to_message.from.username == "tulinjiqirenBot") {
// return true;
// }
// }

if (text) {
var paras = text.split(" ");
if (paras[0] && paras[0].indexOf("@") >= 0){
// tulinjiqirenbot 改成你自己机器人的名字, 全部小写
if (paras[0].toLowerCase().indexOf("tulinjiqirenbot") >= 0){
return true;
}
return false;
}
}
return false;
}

function getShareObject(body) {
var payload;
var from;
var chat;
var messageId;
var callback_query_id;

// use editMessage method instead if it's a callback
if (body.callback_query) {
chat = body.callback_query.message.chat;
chat.id = chat.id + "";
messageId = body.callback_query.message.message_id;
from = body.callback_query.from;
callback_query_id = body.callback_query.id;
payload = {
"method": "editMessageText",
"chat_id": chat.id,
"message_id": messageId,
"text": "",
"parse_mode": "markdown",
"disable_web_page_preview": false,
};
} else {
from = body.message.from;
chat = body.message.chat;
chat.id = chat.id + "";
messageId = body.message.message_id;
payload = {
"method": "sendMessage",
"chat_id": chat.id,
"text": "",
"parse_mode": "markdown",
"disable_web_page_preview": true,
"reply_to_message_id": messageId,
};

}

var share = {};
share.payload = payload;
share.from = from;
share.chat = chat;
share.messageId = messageId;
share.callback_query_id = callback_query_id;

return share;
}

参考链接


tgBot建设指南
https://allendericdalexander.github.io/2024/02/18/tgbot/
作者
AtLuoFu
发布于
2024年2月18日
许可协议