خب مدتیه که ساختن رباتهای تلگرام هم مد شده. منم تصمیم گرفتم یه شبه آموزش کوتاه بذارم در این مورد که چطوری یه ربات خیلی ساده بنویسیم و توی اوپنشیفت قرارش بدیم. بیشتر از این حاشیه نمیرم:
- در اولین گام، به BotFather@ در تلگرام پیام میدم تا برام یه ربات بسازه و یه توکن بهم بده. توکن رو یه جایی یادداشت میکنم چون در مراحل بعدی نیازش دارم. در واقع تنها وسیلهی هویتسنجی رباتها در تلگرام همین توکن هست؛ پس از نظر امنیتی هم باید مراقبش بود.
- به وبسایت اوپنشیفت میرم و یه اکانت برای خودم میسازم. البته اوپنشیفت سرویسهای پولی خیلی گستردهای داره ولی برای نوشتن یه ربات تلگرام نیازی به پول دادن نیست. امکانات مجانیش هم کافیه.
(از اینکه ثبتنام تکمیل شد میتونید همونجا از طریق اوپنشیفت برنامهتون رو بسازید ولی خب من ترجیح میدم از رابط خط فرمانش استفاده کنم…) - رابط خطفرمان اوپنشیفت رو با زدن دستور sudo apt install rhc نصب میکنم.
- حالا با زدن دستور rhc setup با وارد کردن اطلاعات کاربریم وارد میشم. در این مرحله چندباری ممکنه ازتون سؤالاتی بشه که خب پاسخ دادن بشون خیلی سادهست! پس بیشتر پرحرفی نمیکنم.
- حالا وقت انتخاب فریمورکه. من نودجیاس رو دوست دارم. ولی خب گزینههای روی میز 🙂 خیلیخیلی بیشترن!
$ rhc app create pingpong nodejs-0.10
یه مقداری طول میکشه تا برنامه ساخته بشه و توی فولدر خودش کلون بشه. صبر میکنیم…
- rhc برنامهی جدیدم رو با کارتریج پیشفرضش توی فولدر pingpong کلون میکنه. خب اول چیزایی که نیاز نیست رو پاک میکنم:
1 2 3 |
$ cd pingpong $ rm {deplist.txt,index.html,README.md,server.js} $ touch main.js |
حالا محتویات فایل package.json رو تغییر میدم تا node-telegram-bot-api رو توی اوپنشیفت نصب کنه:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
{ "name": "Ping-Pong-Bot", "version": "1.0.0", "description": "My first telegram bot", "keywords": [ "telegram", "first", "bot", "pingpong" ], "author": { "name": "Fadavi", "email": "mfadavi@mfadavi.ir", "url": "http://blog.mfadavi.ir" }, "engines": { "node": ">= 0.6.0", "npm": ">= 1.0.0" }, "dependencies": { "node-telegram-bot-api": "latest" }, "private": true, "main": "main.js", "scripts": { "start": "node main.js" } } |
- دیگه چیزی به پایان کار نمونده. حالا فایل main.js رو ویرایش میکنم تا بتونیم باهاش پینگپونگ بازی کنیم! (شما به جای 'TOKEN' ، توکن ربات خودتون رو بذارید)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var Bot = require('node-telegram-bot-api'); var TOKEN = 'TOKEN'; var bot = new Bot(TOKEN, { polling: true }); bot.onText(/\/?start/, function(msg) { bot.sendMessage(msg.chat.id, 'به من بگی ping میگم pong و بالعکس! :)'); }); bot.onText(/\/?ping/, function(msg) { bot.sendMessage(msg.chat.id, 'pong'); }); bot.onText(/\/?pong/, function(msg) { bot.sendMessage(msg.chat.id, 'ping'); }); |
- تبریک میگم. کار تقریبا تمومه. فقط باید تغییرات به سرور اطلاع داده بشه:
1 2 |
$ git commit -am "It's first commit <3" $ git push |
و بعد از اینکه دستور به پایان رسید ربات آمادهست! بیاید یکم باش پینگپونگ بازی کنیم! pingnpong_bot@