3.9 KiB
#bashbot A Telegram bot written in bash.
Uses json.sh and tmux (for interactive chats).
Instructions
Create your first bot
-
Message @botfather https://telegram.me/botfather with the following text:
/newbot
If you don't know how to message by username, click the search field on your Telegram app and type@botfather
, you should be able to initiate a conversation. Be careful not to send it to the wrong contact, because some users has similar usernames tobotfather
. -
@botfather replies with
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
-
Type whatever name you want for your bot.
-
@botfather replies with
Good. Now let's choose a username for your bot. It must end in
bot. Like this, for example: TetrisBot or tetris_bot.
-
Type whatever username you want for your bot, minimum 5 characters, and must end with
bot
. For example:telesample_bot
-
@botfather replies with:
Done! Congratulations on your new bot. You will find it at telegram.me/telesample_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands.
Use this token to access the HTTP API: 123456789:AAG90e14-0f8-40183D-18491dDE
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
-
Note down the 'token' mentioned above.
-
Type
/setprivacy
to @botfather. -
@botfather replies with
Choose a bot to change group messages settings.
-
Type
@telesample_bot
(change to the username you set at step 5 above, but start it with@
) -
@botfather replies with
'Enable' - your bot will only receive messages that either start with the '/' symbol or mention the bot by username. 'Disable' - your bot will receive all messages that people send to groups. Current status is: ENABLED
-
Type
Disable
to let your bot receive all messages sent to a group. This step is up to you actually. -
@botfather replies with
Success! The new status is: DISABLED. /help
Install bashbot
Clone the repository:
git clone https://github.com/topkecleon/telegram-bot-bash
Paste the token on line 12 (instead of tokenhere).
Then start editing the commands.
Usage
To send messages use the send_message
function:
send_message "$TARGET" "lol"
To send images use the send_photo
function:
send_photo "$TARGET" "/home/user/doge.jpg"
To send custom keyboards use the send_keyboard
function or the send_message
function:
send_keyboard "$TARGET" "Text that will appear in chat?" "Yep" "No"
To create interactive chats, write (or edit the question script) a normal bash (or C or python) script, chmod +x it and then substitute ./question @ line 49 with the command you usually use to start the script.
The text that the script will output will be sent in real time to the user, and all user input will be sent to the script (as long as it's running or until the user kills it with /cancel).
To open up a keyboard in an interactive script, print out the keyboard layout in the following way:
echo "Text that will appear in chat? mykeyboardstartshere Yep No"
Same goes for images:
echo "Text that will appear in chat? myimagelocationstartshere /home/user/doge.jpg"
Or both:
echo "Text that will appear in chat? mykeyboardstartshere Yep No myimagelocationstartshere /home/user/doge.jpg"
Once you're done editing start the bot with tmux new-session -d -s bashbot "./bashbot.sh"
.
To stop the bot run tmux kill-session -t bashbot
.
If some thing doesn't work as it should, debug with bash -x bashbot.sh
.
That's it!
If you feel that there's something missing or if you found a bug, feel free to submit a pull request!