Build Serverless Telegram Bot via StdLib — hack server side! :)

Matej Nemček 🌱🌍
3 min readMay 17, 2018

--

Hello, in this article I will show you how easily, with very little effort, you can run your own Telegram Bot with help of StdLib (Serverless approach).

Long story short, serverless is convenient if you don’t want to mind any server setup or think about scaling your service or you want to save time spent on server setups and its configurations.

Mostly you pay only for invocation of your function whenever is called and you don’t pay for server, when nobody is using your service e.g. during 🌃

What We Will Do

  • environment setup
  • register bot
  • copy-paste snippet
  • connect Telegram servers with your bot
  • have fun! :)

Before We Start (prerequisites)

First of all, you will need to register at StdLib before you can continue. Actually, you can register StdLib account directly from CLI.

Afterwards, we will continue step by step from https://docs.stdlib.com/main/#/quickstart/from-scratch

Enviroment Setup

We will install StdLib CLI utility.

npm install lib.cli -g

Create our stdlib workspace for our bot.

mkdir stdlib-workspace
cd stdlib-workspace
lib init

Then, we will create our service.

lib create replybot

Go to working directory.

cd yangwao/replybot

To make requests, we will use lightweight library r2.

npm i r2

Register Bot

Now, you will need to have a token for your bot, we will create it at BotFather.

Lets create new Telegram Bot, using, of course, another bot for this. Go to https://web.telegram.org and write to this guy @BotFather. He will guide you through the process and you will end up with something like this:

180473239:VHqX8dOnuhGlJXyurVHqX8dO8yhqX8

Copy-Paste Snippet

Now you can copy paste this snippet code. Don’t forget to insert your token from BotFather at line 3.

After, you can put your bot up to accept requests from Internets.

lib up dev

In your terminal you will get something like is shown in the following code snippet.

(default function)
— — — — — — — — —
url: https://yangwao.lib.id/replybot@dev/

Connect Telegram Servers With Your Bot

Now, we will set webhook destination to tell Telegram servers where we will receive new updates for our bot. I’m using httpie here for HTTP requests, it’s better replacement for curl

If you are struggling with something regarding stdlib, you can lookup for logs.

lib logs yangwao.replybot[@dev]

Write Your Very Own Bot Now! :)

Conclusion

Serverless approach is very convenient in some cases because it allows you to build very scalable solution. It also changes your thinking paradigm about managing and paying for servers.

StdLib gives you $5 credit upfront to play with and you can build your very first serverless function or deploy your chatbot.

Inspirated by article https://hackernoon.com/serverless-telegram-bot-on-aws-lambda-851204d4236c

Serverless framework gives you very simple tool to deploy your function with no need to know AWS or any other cloud provider.

Further reading https://github.com/anaibol/awesome-serverless

--

--