我应该在哪里上传我的电报机器人代码才能运行?

时间:2017-02-24 04:28:34

标签: telegram telegram-bot

我知道我创建了新的机器人,给它起名字,描述来自BotFather 内部电报

但是这只添加机器人,当我修改我的机器人时,在python \ lua \ php等中编写一些功能 - 代码应该去哪里以及电报如何知道我的机器人的行为?

谁运行新代码,我应该在哪里上传我的机器人的新附加代码?

是否进入电报服务器并在云上运行? 如果是的话,如何上传?

2 个答案:

答案 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"在控制台中。

如果您需要在服务器上设置机器人,则该过程类似。

希望这有帮助。