Hướng dẫn: cách tạo bot Telegram đơn giản trong JS cho người mới bắt đầu lập trình

Tôi bắt đầu đắm mình vào thế giới CNTT chỉ ba tuần trước. Nghiêm túc mà nói, ba tuần trước, tôi thậm chí còn không hiểu cú pháp HTML và phần giới thiệu về ngôn ngữ lập trình của tôi đã kết thúc bằng chương trình giảng dạy ở trường về Pascal từ 10 năm trước. Tuy nhiên, tôi quyết định tham gia trại CNTT, nơi sẽ rất thú vị cho trẻ em làm robot. Tôi quyết định rằng việc đó khó đến thế.

Điều này bắt đầu một cuộc hành trình dài trong đó tôi:

  • đã triển khai máy chủ đám mây với Ubuntu,
  • đã đăng ký trên GitHub,
  • đã học cú pháp JavaScript cơ bản,
  • đọc rất nhiều bài báo bằng tiếng Anh và tiếng Nga,
  • cuối cùng đã tạo ra một con robot,
  • Cuối cùng tôi đã viết bài viết này.

Kết quả cuối cùng trông giống như thế này:

Hướng dẫn: cách tạo bot Telegram đơn giản trong JS cho người mới bắt đầu lập trình

Tôi sẽ nói ngay rằng đây là bài viết dành cho người mới bắt đầu - chỉ để hiểu cách làm những việc cơ bản từ đầu.

Và ngoài ra - đối với những lập trình viên cao cấp - chỉ để làm họ cười một chút.

1. Viết code trong JS như thế nào?

Tôi hiểu rằng ít nhất việc hiểu cú pháp của ngôn ngữ trước tiên cũng đáng giá. Lựa chọn thuộc về JavaScript, đơn giản vì bước tiếp theo đối với tôi là tạo một ứng dụng trong ReactNative. tôi bắt đầu với khóa học trên Codecademy và rất vui mừng. 7 ngày đầu miễn phí. Các dự án thực tế. Tôi khuyên bạn nên. Hoàn thành nó mất khoảng 25 giờ. Trên thực tế, không phải tất cả đều hữu ích. Đây là cấu trúc khóa học và khối đầu tiên một cách chi tiết.

Hướng dẫn: cách tạo bot Telegram đơn giản trong JS cho người mới bắt đầu lập trình

2. Làm thế nào để đăng ký bot?

Điều này đã giúp tôi rất nhiều trong thời gian đầu bài viết này từ blog của một Archkov nào đó. Anh ấy nhai ngay từ đầu. Nhưng điều chính là có hướng dẫn đăng ký bot. Tôi không thể viết hay hơn, và vì đây là phần dễ nhất nên tôi sẽ chỉ viết ý chính. Bạn cần tạo bot và lấy API của nó. Việc này được thực hiện thông qua một bot khác - @BotFather. Tìm anh ấy trên điện tín, viết thư cho anh ấy, làm theo con đường đơn giản và nhận (lưu!) Khóa API (đây là một tập hợp các số và chữ cái). Nó có ích sau này.

Hướng dẫn: cách tạo bot Telegram đơn giản trong JS cho người mới bắt đầu lập trình

3. Mã bot trông như thế nào?

Sau khi nghiên cứu các bài viết một thời gian dài, tôi nhận ra rằng nên sử dụng một số loại thư viện (mã của bên thứ ba ở định dạng mô-đun) để không phải lo lắng về việc nghiên cứu API Telegram và tạo các đoạn mã lớn từ đầu. Tôi đã tìm thấy khuôn khổ điện báo, cần được kết nối bằng cách nào đó với thứ gì đó bằng cách sử dụng npm hoặc sợi. Đây đại khái là cách tôi hiểu việc triển khai bot bao gồm những gì. Cười đây. Tôi sẽ không bị xúc phạm. Các ví dụ ở cuối trang đã giúp tôi nhiều nhất trong quá trình tạo bot tiếp theo:

Hướng dẫn: cách tạo bot Telegram đơn giản trong JS cho người mới bắt đầu lập trình

3. Cách tạo máy chủ đám mây của riêng bạn với giá 100 rúp

Sau rất nhiều lần tìm kiếm, tôi nhận ra rằng lệnh 'npm' trong hình trên đề cập đến dòng lệnh. Dòng lệnh có ở khắp mọi nơi, nhưng để có thể thực thi nó, bạn cần cài đặt NodePackageManager. Vấn đề là tôi đang lập trình trên PixelBook với ChromeOS. Ở đây tôi sẽ bỏ qua phần lớn về cách tôi học Linux - đối với hầu hết nó trống rỗng và không cần thiết. Nếu bạn có Windows hoặc MacBook, bạn đã có bảng điều khiển.

Tóm lại, tôi đã cài đặt Linux qua Crostini.

Tuy nhiên, trong quá trình đó, tôi nhận ra rằng để bot hoạt động liên tục (và không chỉ khi máy tính của tôi bật), tôi cần có một máy chủ đám mây. Tôi chọn vscale.io Tôi đã chi 100 rúp và mua máy chủ Ubuntu rẻ nhất (xem hình).

Hướng dẫn: cách tạo bot Telegram đơn giản trong JS cho người mới bắt đầu lập trình

4. Cách chuẩn bị máy chủ chạy bot

Sau đó, tôi nhận ra rằng tôi cần tạo một loại thư mục nào đó trên máy chủ để tôi đặt tệp có văn bản mã. Để thực hiện việc này, trong bảng điều khiển (chạy trực tiếp trên trang web thông qua nút “Mở bảng điều khiển”), tôi đã nhập

mkdir bot

bot - đây đã trở thành tên thư mục của tôi. Sau đó, tôi đã cài đặt npm và Node.js, điều này sẽ cho phép tôi chạy mã từ các tệp có độ phân giải *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Tôi thực sự khuyên bạn nên thiết lập kết nối với máy chủ thông qua bảng điều khiển của mình ở giai đoạn này. Đây hướng dẫn Điều này sẽ cho phép bạn làm việc trực tiếp với máy chủ thông qua bảng điều khiển của máy tính.

5. Cách viết mã cho bot đầu tiên của bạn.

Nhưng bây giờ nó chỉ là một khám phá đối với tôi. Bất kỳ chương trình nào cũng chỉ là những dòng văn bản. Chúng có thể được chèn vào bất cứ đâu, được lưu với phần mở rộng mong muốn và thế là xong. Bạn thật đẹp. tôi đã sử dụng Nguyên tử, nhưng trên thực tế, bạn chỉ có thể viết bằng một cuốn sổ tay thông thường. Điều chính là lưu tệp sau này ở phần mở rộng mong muốn. Nó giống như viết văn bản trong Word và lưu nó.

Tôi đã tạo một tệp mới, trong đó tôi đã chèn mã từ ví dụ trên trang telegraf và lưu nó vào tệp index.js (nói chung không cần thiết phải đặt tên tệp theo cách đó, nhưng đây là thông lệ). Quan trọng - thay vì BOT_TOKEN, hãy chèn khóa API của bạn từ đoạn thứ hai.

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. Cách upload code lên server qua github

Bây giờ tôi cần bằng cách nào đó tải mã này lên máy chủ và chạy nó. Điều này trở thành một thử thách đối với tôi. Kết quả là, sau nhiều thử thách, tôi nhận ra rằng việc tạo một tệp trên github cho phép bạn cập nhật mã bằng lệnh trong bảng điều khiển sẽ dễ dàng hơn. Tôi đã đăng ký một tài khoản trên github và đã làm dự án mới, nơi tôi đã tải tệp lên. Sau đó, tôi cần tìm ra cách thiết lập tải tệp từ tài khoản của mình (mở!) Lên máy chủ trong thư mục bot (nếu bạn đột ngột rời khỏi nó, chỉ cần viết cd bot).

7. Cách upload file lên server qua github phần 2

Tôi cần cài đặt một chương trình trên máy chủ để tải xuống các tệp từ git. Tôi đã cài đặt git trên máy chủ bằng cách gõ vào bảng điều khiển

apt-get install git

Sau đó tôi cần cấu hình tải lên tập tin. Để làm điều này, tôi gõ vào dòng lệnh

git clone git://github.com/b0tank/bot.git bot

Kết quả là mọi thứ từ dự án đã được tải lên máy chủ. Sai lầm ở giai đoạn này là về cơ bản tôi đã tạo một thư mục thứ hai bên trong thư mục bot hiện có. Địa chỉ của tệp có dạng */bot/bot/index.js

Tôi quyết định bỏ qua vấn đề này.

Và để tải thư viện telegraf mà chúng tôi yêu cầu trong dòng mã đầu tiên, hãy nhập lệnh vào bảng điều khiển.

npm install telegraf

8. Cách khởi chạy bot

Để thực hiện việc này, khi đang ở trong thư mục có tệp (để di chuyển từ thư mục này sang thư mục khác qua bảng điều khiển, hãy chạy lệnh định dạng cd bot Để đảm bảo rằng bạn đang ở nơi cần đến, bạn có thể nhập lệnh sẽ hiển thị trong bảng điều khiển tất cả các tệp và thư mục ở đó ls -a

Để bắt đầu, tôi đã vào bảng điều khiển

node index.js

Nếu không có lỗi thì mọi thứ đều ổn, bot đang hoạt động. Hãy tìm anh ấy trên điện tín. Nếu có lỗi, hãy áp dụng kiến ​​thức của bạn từ điểm 1.

9. Cách chạy bot ở chế độ nền

Rất nhanh chóng, bạn sẽ nhận ra rằng bot chỉ hoạt động khi chính bạn đang ngồi trong bảng điều khiển. Để giải quyết vấn đề này tôi đã sử dụng lệnh

screen

Sau đó, một màn hình với một số văn bản sẽ xuất hiện. Điều này có nghĩa là mọi thứ đều ổn. Bạn đang ở trên một máy chủ ảo trên máy chủ đám mây. Để hiểu rõ hơn cách thức hoạt động của nó - đây là bài báo. Chỉ cần vào thư mục của bạn và nhập lệnh để khởi chạy bot

node index.js

10. Cách thức hoạt động của bot và cách mở rộng chức năng của nó

Bot mẫu của chúng tôi có thể làm gì? Anh ấy có thể

bot.start((ctx) => ctx.reply('Welcome!'))

nói "Chào mừng!" tại thời điểm bắt đầu (thử thay đổi văn bản)

bot.help((ctx) => ctx.reply('Send me a sticker'))

để đáp lại lệnh /help tiêu chuẩn, hãy gửi tin nhắn “Gửi cho tôi nhãn dán”

bot.on('sticker', (ctx) => ctx.reply(''))

gửi phê duyệt để phản hồi nhãn dán

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

trả lời “Này” nếu họ viết “xin chào” với anh ấy
bot.launch()

Hướng dẫn: cách tạo bot Telegram đơn giản trong JS cho người mới bắt đầu lập trình

Nếu bạn nhìn vào mã tại github, thì bạn sẽ nhanh chóng hiểu rằng tôi chưa đi quá xa chức năng này. Những gì được sử dụng tích cực là chức năng ctx.replyWithPhoto Nó cho phép bạn gửi một bức ảnh hoặc gif cụ thể để đáp lại một văn bản cụ thể.

Một phần quan trọng của mã được viết bởi trẻ em từ 11-13 tuổi, những người được tôi cấp quyền truy cập vào bot. Họ đã nhập trường hợp người dùng của họ. Tôi nghĩ thật dễ dàng để biết phần nào được họ làm.

Ví dụ: tin nhắn “Jake” sẽ nhận được ảnh GIF có hình một nhân vật nổi tiếng trong phim hoạt hình Adventure Time.

Hướng dẫn: cách tạo bot Telegram đơn giản trong JS cho người mới bắt đầu lập trình

Để phát triển bot hơn nữa, bạn cần kết nối bàn phím, xem ví dụ, ví dụ: do đó

11. Cách cập nhật mã và khởi động lại bot

Đừng quên rằng bạn cần cập nhật mã không chỉ trên github mà còn trên máy chủ. Việc này rất dễ thực hiện - dừng bot (nhấn ctrl+c),

- nhập vào bảng điều khiển khi đang ở trong thư mục đích, git pull
— chúng ta khởi chạy lại bot bằng lệnh node index.js

END

Nhiều điều được mô tả trong tệp này sẽ cực kỳ rõ ràng đối với các lập trình viên cấp cao. Tuy nhiên, khi bản thân tôi cố gắng nhảy qua vực thẳm để đến thế giới bot trong một cú trượt ngã, tôi thực sự đã bỏ lỡ một hướng dẫn như vậy. Một hướng dẫn không bỏ sót những điều hiển nhiên và đơn giản đối với bất kỳ chuyên gia CNTT nào.

Trong tương lai, tôi đang lên kế hoạch đăng một bài về cách tạo ứng dụng đầu tiên của bạn trên ReactNative theo phong cách tương tự, hãy đăng ký!

Nguồn: www.habr.com

Thêm một lời nhận xét