就在三周前,我才开始沉浸在 IT 世界中。 说真的,三周前我什至都不懂 HTML 语法,而我对编程语言的介绍就以 10 年前的 Pascal 学校课程结束了。 然而,我决定去一个 IT 训练营,在那里孩子们制作一个机器人会很好。 我决定这并不那么困难。
这开始了一段漫长的旅程,其中我:
- 使用Ubuntu部署了云服务器,
- 在 GitHub 上注册,
- 学习了基本的 JavaScript 语法,
- 阅读大量英语和俄语文章,
- 终于做了一个机器人
- 我终于写了这篇文章。
最终结果看起来像这样:
我会立即说这是一篇针对初学者的文章 - 只是为了了解如何从头开始做基本的事情。
而且 - 对于高级程序员 - 只是为了让他们笑一下。
1.如何用JS编写代码?
我明白至少值得首先了解该语言的语法。 选择落在了 JavaScript 上,因为我的下一步是在 ReactNative 中创建一个应用程序。 我开始于
2. 如何注册机器人?
这在一开始对我帮助很大
3. 机器人代码是什么样的?
研究了很长时间的文章后,我意识到使用某种库(模块格式的第三方代码)是值得的,这样就不必担心学习 Telegram API 和从头开始创建大段代码。 我找到了框架
3.如何用100卢布创建自己的云服务器
经过大量搜索,我意识到上图中的“npm”命令指的是命令行。 命令行无处不在,但为了能够执行它,您需要安装 NodePackageManager。 问题是我正在使用 ChromeOS 的 PixelBook 上进行编程。 我将在这里跳过一大块关于我如何学习 Linux 的内容——对于大多数人来说,它是空的并且没有必要。 如果您有 Windows 或 MacBook,那么您就已经拥有了控制台。
简而言之,我通过 Crostini 安装了 Linux。
然而,在这个过程中,我意识到,为了让机器人持续工作(而不仅仅是当我的计算机打开时),我需要一个云服务器。 我选择了
4. 如何准备服务器来运行机器人
之后,我意识到我需要在服务器上创建某种文件夹,将带有代码文本的文件放入其中。 为此,在控制台中(通过“打开控制台”按钮直接在网站上运行),我输入
mkdir bot
bot - 这成为我的文件夹的名称。 之后,我安装了 npm 和 Node.js,这将允许我从具有 *.js 分辨率的文件运行代码
sudo apt update
sudo apt install nodejs
sudo apt install npm
我强烈建议在此阶段通过控制台设置与服务器的连接。 这里
5. 如何为您的第一个机器人编写代码。
但现在这对我来说只是一个发现。 任何程序都只是文本行。 它们可以插入到任何地方,用所需的扩展名保存,仅此而已。 你很美丽。 我用了
我创建了一个新文件,在其中插入了 telegraf 页面上示例中的代码,并将其保存在 index.js 文件中(通常不需要以这种方式命名文件,但这是惯例)。 重要提示 - 请插入第二段中的 API 密钥,而不是 BOT_TOKEN。
const Telegraf = require('telegraf')
const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Welcome!'))
bot.help((ctx) => ctx.reply('Send me a sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
bot.launch()
6.如何通过github上传代码到服务器
现在我需要以某种方式将此代码上传到服务器并运行它。 这对我来说成了一个挑战。 结果,经过多次磨难,我意识到在 github 上创建一个允许您使用控制台中的命令更新代码的文件会更容易。 我注册了一个帐户
7.如何通过github上传文件到服务器第2部分
我需要在服务器上安装一个程序来从 git 下载文件。 我通过在控制台中输入来在服务器上安装 git
apt-get install git
之后我需要配置文件上传。 为此,我在命令行中输入
git clone git://github.com/b0tank/bot.git bot
结果,项目中的所有内容都被上传到服务器。 此阶段的错误是我实质上在现有的 bot 文件夹中创建了第二个文件夹。 文件的地址类似于 */bot/bot/index.js
我决定忽略这个问题。
要加载我们在第一行代码中请求的 telegraf 库,请在控制台中键入命令。
npm install telegraf
8. 如何启动机器人
为此,在包含文件的文件夹中(要通过控制台从一个文件夹移动到另一个文件夹,请运行 format 命令 cd bot
为了确保您位于所需的位置,您可以输入一个命令,该命令将在控制台中显示所有文件和文件夹 ls -a
首先,我进入控制台
node index.js
如果没有错误,一切都很好,机器人正在工作。 在电报上寻找他。 如果有错误,请运用第 1 点中的知识。
9. 如何在后台运行机器人
很快您就会意识到,只有当您坐在控制台中时,该机器人才能工作。 为了解决这个问题我使用了命令
screen
之后,将出现一个带有一些文本的屏幕。 这意味着一切都很好。 您位于云服务器上的虚拟服务器上。 为了更好地理解这一切是如何运作的 -
node index.js
10. 机器人如何工作以及如何扩展其功能
我们的示例机器人可以做什么? 他可以
bot.start((ctx) => ctx.reply('Welcome!'))
说“欢迎!” 在开始时(尝试更改文本)
bot.help((ctx) => ctx.reply('Send me a sticker'))
响应标准 /help 命令,发送消息“给我发送贴纸”
bot.on('sticker', (ctx) => ctx.reply(''))
发送批准以响应贴纸
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
如果他们给他写“嗨”,请回答“嘿”
机器人.launch()
如果你看一下代码 ctx.replyWithPhoto
它允许您发送指定的照片或 gif 来响应特定的文本。
代码的很大一部分是由 11 至 13 岁的儿童编写的,我向他们授予了对机器人的访问权限。 他们输入了他们的用户案例。 我认为很容易看出哪一部分是他们制作的。
例如,消息“Jake”将收到带有卡通探险活宝中著名角色的 GIF。
要进一步开发机器人,您需要连接键盘,请参阅示例,例如,
11. 如何更新代码并重启机器人
不要忘记,你不仅需要更新github上的代码,还需要更新服务器上的代码。 这很容易做到 - 停止机器人(按 ctrl+c),
- 在目标文件夹中进入控制台, git pull
— 我们使用以下命令再次启动机器人 node index.js
结束
该文件中描述的许多内容对于高级程序员来说都是非常明显的。 然而,当我自己试图一举跨越鸿沟进入机器人世界时,我真的很怀念这样一个指引。 该指南不会错过对任何 IT 专家来说显而易见且简单的事情。
将来,我计划写一篇关于如何以相同风格在 ReactNative 上制作第一个应用程序的文章,订阅!
来源: habr.com