Well first what is a bot?
A bot is a piece of software that can execute commands, reply to messages, or perform routine tasks, as online searches, either automatically or with minimal human intervention
Now how to create one?
Here i have created a bot that run in telegram and i will show you how to do
Steps in creating a Telegram Bot
In this image you can able to find the token id strike out by red color
A bot is a piece of software that can execute commands, reply to messages, or perform routine tasks, as online searches, either automatically or with minimal human intervention
Now how to create one?
Here i have created a bot that run in telegram and i will show you how to do
Steps in creating a Telegram Bot
- Create a account in telegram
- Search for @botfather ( a bot that will assist you in creating new bot )
- Inside BotFather chat type /newbot and it will ask name for the bot and username for the bot once you completed above things successfully then botfather gives you Token id which is essential to create a bot
In this image you can able to find the token id strike out by red color
- Well now we have everything we need , we can able to create a bot using python ( you can able to create in any language )
- In command line
Bot can get update from user using two methods
- Long Polling
- Webhooks
Here i have created a bot which download the file to the computer. you need to pass the url download command
Eg: [ /download <<url>> ]
The concept is simple we get the url from the message and pass it to the wget ( command line downloader ) which can be done in python by
command = "wget " + << download url >> + "&" ( '&' -> to run the program in background ) os.system(command)
To implement the above concept we will pass the Token id to the updater and then add handler to the updater
In our scenario the handler is "download" so we will create a dispatcher then set handler to the dispathcer and set a function that execute when we encounter this handler this can be done using
updater = Updater("<<Your Bot Id>>") dp = updater.dispatcher dp.add_handler(CommandHandler("<< handler name >>", Function to be executed ))Add the above code to create a simple telegram app and the complete source code look alike
#!/usr/bin/env python # -*- coding: utf-8 -*- # Simple Telegram bot in which you can pass the url to the download the computer will download for you # Reference : https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples # My Blog : Thangaayyanar.blogspot.in from telegram.ext import Updater, CommandHandler import logging import os # Enable logging logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO) logger = logging.getLogger(__name__) def start(bot, update): update.message.reply_text('Hi! Use /download <download url> to download the file') def initiate_download(bot, update, args, job_queue, chat_data): chat_id = update.message.chat_id try: command = "wget " + args[0] + "&" os.system(command) update.message.reply_text('Download process started') except (IndexError, ValueError): update.message.reply_text('Usage: /download <download url>') def error(bot, update, error): """Log Errors caused by Updates.""" logger.warning('Update "%s" caused error "%s"', update, error) def main(): """Run bot.""" updater = Updater("<<Your Bot Id>>") # Get the dispatcher to register handlers dp = updater.dispatcher # on different commands - answer in Telegram dp.add_handler(CommandHandler("start", start)) dp.add_handler(CommandHandler("help", start)) dp.add_handler(CommandHandler("download", initiate_download, pass_args=True, pass_job_queue=True, pass_chat_data=True)) # log all errors dp.add_error_handler(error) # Start the Bot updater.start_polling() updater.idle() if __name__ == '__main__': main()
Adding few error handling code to the program to work better
Run the bot and pass the data
/download < url >
the file will be download to the computer
Cheers you have created a Bot
Comments
Post a Comment