我知道我创建了新的机器人,给它起名字,描述来自BotFather 内部电报
但是这只添加机器人,当我修改我的机器人时,在python \ lua \ php等中编写一些功能 - 代码应该去哪里以及电报如何知道我的机器人的行为?
谁运行新代码,我应该在哪里上传我的机器人的新附加代码?
是否进入电报服务器并在云上运行? 如果是的话,如何上传?
答案 0 :(得分:7)
使用 BotFather 设置Bot的身份( @bot_name )之后,下一步是设计Bot将执行的交互/功能。
您的机器人代码存在于您的服务器上。
与 @bot_name 交互的用户的请求将从Telegram路由到您的服务器......
1)您已使用webHook进行设置(使用setWebhook
方法),因此Telegram知道将机器人的请求发送到何处
或
2)你的机器人使用getUpdates
方法重复询问Telegram的Bot-API是否有任何新的更新(即用户发送给你的机器人的消息)
您的机器人会收到这些消息,并按照您的机器人“代码或逻辑”
的指示进行回复希望这会有所帮助。
答案 1 :(得分:2)
您可以从计算机上轻松运行代码。
例如我是如何使用NodeJS完成的:
1)在您的机器上安装NodeJS(详情 - https://nodejs.org/en/download/package-manager/)
2)安装节点电报机器人API(https://github.com/yagop/node-telegram-bot-api)
3)创建这样的文件,填写必要的更改:
const TelegramBot = require('node-telegram-bot-api');
// replace the value below with the Telegram token you receive from @BotFather
const token = 'YOUR_TELEGRAM_BOT_TOKEN';
// Create a bot that uses 'polling' to fetch new updates
const bot = new TelegramBot(token, {polling: true});
// Matches "/echo [whatever]"
bot.onText(/\/echo (.+)/, (msg, match) => {
// 'msg' is the received Message from Telegram
// 'match' is the result of executing the regexp above on the text content
// of the message
const chatId = msg.chat.id;
const resp = match[1]; // the captured "whatever"
// send back the matched "whatever" to the chat
bot.sendMessage(chatId, resp);
});
// Listen for any kind of message. There are different kinds of
// messages.
bot.on('message', (msg) => {
const chatId = msg.chat.id;
// send a message to the chat acknowledging receipt of their message
bot.sendMessage(chatId, 'Received your message');
});
4)最后启动命令控制台(如Windows上的cmd)导航到脚本所在的电报机器人目录并输入节点index.js(假设您的文件与上面的机器人脚本一样命名为index.js)
按照这些步骤,您将拥有一个功能齐全的机器人。当您对index.js进行更改时,您只需重新运行命令" node index.js"在控制台中。
如果您需要在服务器上设置机器人,则该过程类似。
希望这有帮助。