就在三週前,我才開始沉浸在 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 上製作第一個應用程式的文章,訂閱!
來源: www.habr.com