柚子快報邀請碼778899分享:如何在TG上創(chuàng)建機器人
創(chuàng)建機器人Bot
在Telegram上,找個人叫BotFather,他是一個機器人,可以直接與他對話。
通過如下三步即可創(chuàng)建一名你自己的機器人:
1、/newbot申請創(chuàng)建機器人,此時他會回復(fù)你提供機器人的名字(昵稱)
2、botname這個你自己起就行,比如mytestbot20241114(區(qū)別下面示例,方便理解)
3、botid這個就是這個機器人的賬號,就是Telegram可以搜索到的類似userid的東西,有個要求就是必須bot結(jié)尾,如mytest20241114bot
此時,你就可以拿到上面這樣的回復(fù),有個Done,說明生成成功,在中間HTTP API下面有個高亮的token,這個就是驗證啟動服務(wù)用的,保留好,很好用。
(注意,同樣的token在啟動服務(wù)時候,會被后啟動的頂?shù)?。這個還是好理解的吧。
下面使用Node.js做示例,可以看下如何快速集成。
const TelegramBot = require('node-telegram-bot-api')
// const { SocksProxyAgent } = require('socks-proxy-agent')
// const agent = new SocksProxyAgent('socks://localhost:7078')
const token = '7719541817:AAETjgrLtsfwkABC4KtqjkbiYjguCdXtty0'
const bot = new TelegramBot(token, {
polling: true,
// request: {
// agent
// }
})
bot.onText(/\/echo (.+)/, (msg, match) => {
const chatId = msg.chat.id
const resp = match[1]
bot.sendMessage(chatId, resp)
})
bot.on('message', (msg) => {
const chatId = msg.chat.id
bot.sendMessage(chatId, 'Received your message. ' + process.env.NODE_ENV + ' ' + process.env.runtime)
})
這里要注意被我注釋的部分,由于Telegram服務(wù)器的特殊性,所以如果你在本地運行,大概率是會出現(xiàn)error: [polling_error] {"code":"EFATAL","message":"EFATAL: Error: connect ETIMEDOUT xxx.xxx.xxx.xxx:443"}類似這樣的錯誤,不要慌,就是科學(xué)的事情。
所以,在你的科學(xué)工具支持socket的情況下,需要使用我上面注釋代碼的內(nèi)容,替換其中的url為你自己的本地或遠程都行。
如果你部署在國外服務(wù)器上,則不需要注釋的那些代碼,放心刪掉就好了。
這里的onText就是匹配文本,類似express的router,這里用了正則匹配,獲取消息id和消息的內(nèi)容實體(截取有效業(yè)務(wù)部分)。
下面的message是消息監(jiān)聽,會同時獲取到上面的onText,所以會出現(xiàn)兩次消息,解決方案就是代碼排除即可。
我在message里面加上來環(huán)境變量區(qū)分線上和線下,無所謂。
最后效果如圖:
這里本地未設(shè)置環(huán)境變量,所以都是undefined。 響應(yīng)的token不可用,因為我已經(jīng)刪掉這個機器人。
柚子快報邀請碼778899分享:如何在TG上創(chuàng)建機器人
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。