All Projects → Andrii-D → telegram-stepfunctions-bot

Andrii-D / telegram-stepfunctions-bot

Licence: other
Serverless Telegram bot made on 4 AWS Lambda chained by AWS Step Functions. All of this written on Serverless Framework using plugins.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to telegram-stepfunctions-bot

twitter
A serverless social network that's under development with some cool stuff, such as Serverless Framework, AppSync, GraphQL, Lambda, DynamoDB, Cognito, Kinesis Firehose, and Algolia ☁️
Stars: ✭ 29 (+11.54%)
Mutual labels:  lambda, dynamodb, serverless-framework
Serverless Express
Run Node.js web applications and APIs using existing application frameworks on AWS #serverless technologies such as Lambda, API Gateway, Lambda@Edge, and ALB.
Stars: ✭ 4,265 (+16303.85%)
Mutual labels:  lambda, dynamodb, serverless-framework
Serverless Appsync Plugin
serverless plugin for appsync
Stars: ✭ 804 (+2992.31%)
Mutual labels:  lambda, dynamodb, serverless-framework
tdlight-telegram-bot-api
The TDLight Telegram Bot API is an actively enhanced fork of the original Bot API, featuring experimental user support, proxies, unlimited files size, and more.
Stars: ✭ 71 (+173.08%)
Mutual labels:  telegram-bot, telegram-bot-api
home-energy-monitor
ESP32-based Home Energy Monitor
Stars: ✭ 152 (+484.62%)
Mutual labels:  lambda, dynamodb
serverless-email-scheduler
Schedule future emails with AWS Lambda and Step Functions
Stars: ✭ 29 (+11.54%)
Mutual labels:  lambda, serverless-framework
typedorm
Strongly typed ORM for DynamoDB - Built with the single-table-design pattern in mind.
Stars: ✭ 224 (+761.54%)
Mutual labels:  dynamodb, aws-dynamodb
terraform-aws-lambda
A Terraform module to create AWS Lambda ressources.
Stars: ✭ 40 (+53.85%)
Mutual labels:  lambda, dynamodb
Truecaller-Smsbomber telegram bot
Telegram bot which has truecaller and smsbomber features
Stars: ✭ 30 (+15.38%)
Mutual labels:  telegram-bot, telegram-bot-api
grouphelperbot
A Telegram Bot made to help group admins, with Italian/English support.
Stars: ✭ 26 (+0%)
Mutual labels:  telegram-bot, telegram-bot-api
aws-tutorial-code
AWS tutorial code.
Stars: ✭ 114 (+338.46%)
Mutual labels:  lambda, dynamodb
serverless-plugin-epsagon
Epsagon's plugin for Serverless Framework ⚡️
Stars: ✭ 53 (+103.85%)
Mutual labels:  lambda, serverless-framework
gozeit
GoZeit
Stars: ✭ 19 (-26.92%)
Mutual labels:  lambda, dynamodb
File-Sharing-Bot
Telegram Bot to store Posts and Documents and it can Access by Special Links.
Stars: ✭ 867 (+3234.62%)
Mutual labels:  telegram-bot, telegram-bot-api
basic-serverless-api
A basic full stack example of building an API with AWS Amplify, Amazon API Gateway, AWS Lambda, and Amazon DynamoDB
Stars: ✭ 45 (+73.08%)
Mutual labels:  lambda, dynamodb
fp-telegram
Wrapper classes library for telegram bots API (FreePascal)
Stars: ✭ 59 (+126.92%)
Mutual labels:  telegram-bot, telegram-bot-api
telegram
📚 Golang bindings for Telegram API
Stars: ✭ 15 (-42.31%)
Mutual labels:  telegram-bot, telegram-bot-api
telegram-bot-api-worker
Take an alternate route to Telegram Bot API :)
Stars: ✭ 75 (+188.46%)
Mutual labels:  telegram-bot, telegram-bot-api
TelegramBot
A genuine Perl 6 client for Telegram Bot API
Stars: ✭ 24 (-7.69%)
Mutual labels:  telegram-bot, telegram-bot-api
tmdb bot
IMDB Telegram bot clone using TMDB to get info about movies and TV shows.
Stars: ✭ 22 (-15.38%)
Mutual labels:  telegram-bot, telegram-bot-api

Telegram bot on AWS Step Functions

Serverless Telegram bot made on 4 AWS Lambda chained by AWS Step Functions. All of this written on Serverless Framework using plugins.

This is an example on how to build a simple Telegram bot backend using AWS Lambda functions and AWS Dynamo DB to store messages and AWS Step Function to chain Lambdas.

Deploying

  1. Setup AWS credentials
  2. Install Serverless Framework
  3. Install two plugins: serverless-step-functions and serverless-pseudo-parameters
  4. Clone this repo
  5. Deploy: sls deploy

Architecture

screenshot 2017-11-19 14 29 27

All messages from your Bot will come to the State Machine first.

State machine will invoke two Lambda function in parallel with same payload:

log - will just save payload to DynamoDB and receive - will parse the payload and check for the specific auth message.

receive will pass the result to the next state: AuthOrNot - which is not a Lambda function but just a decider. It will check the result of previous function and either invoke authorize or respond Lambda function.

authorize is aimed to send a callback to your website to authorize the user if needed. The respond function will just send a response to the chatbot.

Too complex?

Here is an example of super simple Telegram bot with only one Lamdba: https://github.com/Andrii-D/serverless-telegram-bot

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].