telegram-bot-simple
Easy to use library for building Telegram bots.
https://github.com/fizruk/telegram-bot-simple#readme
| Version on this page: | 0.13 | 
| LTS Haskell 24.17: | 0.14.4 | 
| Stackage Nightly 2025-07-14: | 0.14.4 | 
| Latest on Hackage: | 0.14.4 | 
telegram-bot-simple-0.13@sha256:26fab79060ebfea06dad143a1d8fe6cf82a9547b18a85d247407c61bcb41a78e,5597Module documentation for 0.13
- Telegram- Telegram.Bot- Telegram.Bot.Simple
 
 
- Telegram.Bot
telegram-bot-simple
Easy to use library for building Telegram bots in Haskell.
LambdaConf 2018 workshop
This library was featured in a LambdaConf 2018 workshop. The supplementary materials for the workshop is available at https://github.com/fizruk/lambdaconf-2018-workshop.
Examples
See bot examples here: https://github.com/fizruk/telegram-bot-simple/tree/master/telegram-bot-simple/examples
Use cabal build all -fexamples to build it.
If you are building with stack then use stack build --flag telegram-bot-simple:examples.
Contributing
Contributions are welcome! Feel free to ping me on GitHub, file an issue or submit a PR :)
Compatibility
| telegram-bot-api | telegram-bot-simple | 
|---|---|
| 0.10 | 6.5 | 
| 0.11.1 | 6.5.1 | 
| 0.12 | 6.7 | 
| 0.13 | 7.0 | 
Nick
Changes
0.13 – 2024-02-06
- Support GHC 9.6 (see #163).
- Support telegram-bot-api == 0.7.
- Fix bot hanging via rethrowing exceptions (see #170).
0.12 – 2023-04-29
- 
Add support for testing WebApps (see #148); 
- 
Add nix flake (see #149); 
- 
Improve documentation for callbackQueryDataRead(see #153);
- 
Support telegram-bot-api == 0.6.7(breaking changes included).
- 
Migration guide: - Provide InlineQueryResultGeneric(seedefInlineQueryResultGeneric).
- Provide InlineQueryResultGenericThumbnail(seedefInlineQueryResultGenericThumbnail).
- Specify your own InlineQueryResult(see helpers for each data constructor).
 
- Provide 
0.11.1
- Add RunTGinstances for newly added methods in 6.5.1.
0.11
- Add default implementations to all requests (see #138);
- Add RunTGthat simplifies making requests (see #139);
0.10
- 
Compilation time reduced by splitting types and methods (see #136); 
- 
All Telegram.Bot.API.*modules moved totelegram-bot-apipackage (see #137);
- 
Telegram.Bot.Simple.Webhookmodule added;
- 
Migration guide: - In the most cases you need to add telegram-bot-apipackage in project dependency list;
- If you are using webhooks then you also need to import Telegram.Bot.Simple.Webhookfromtelegram-bot-simple;
 
- In the most cases you need to add 
0.9
- 
Make package complaint with Telegram Bot API 6.5 (breaking changes included) (see #135): - KeyboardButtonextended with- request_userand- request_chatfields;
- KeyboardButtonRequestUserand- KeyboardButtonRequestChattypes added;
- Messageextended with- user_sharedand- chat_sharedfields;
- ChatMemberand- ChatPermissions:- can_send_media_messagesreplaced with following fields:- can_send_audios;
- can_send_documents;
- can_send_photos;
- can_send_videos;
- can_send_video_notes;
- can_send_voice_notes;
 
- use_independent_chat_permissionsfield added to- setChatPermissionsand- restrictChatMembermethods;
- ChatJoinRequestextended with- user_chat_idfield.
- Updatetype fixed and aligned with the spec.
 
0.8
- 
Make package complaint with Telegram Bot API 6.4 (breaking changes included) (see #134): - ReplyKeyboardMarkupextended with- is_persistent;
- Messageextended with- has_media_spoiler;
- Chatextended with- has_hidden_membersand- has_aggressive_anti_spam_enabled;
- editForumTopicmethod: fields- nameand- icon_custom_emoji_idbecome optional;
- has_spoilerfield added to:- data constructors: InputMediaPhoto,InputMediaVideoandInputMediaAnimation;
- method: sendPhoto,sendVideoandsendAnimation;
 
- data constructors: 
- Following message events added ForumTopicEdited,GeneralForumTopicHiddenandGeneralForumTopicUnhidden;
- General topic forum management, i.e. added following functions: editGeneralForumTopic,closeGeneralForumTopic,reopenGeneralForumTopic,hideGeneralForumTopicandunhideGeneralForumTopic;
 
0.7
- 
Make package complaint with Telegram Bot API 6.3 (breaking changes included) (see #133): - Chatextended with- is_forum,- active_usernamesand- emoji_status_custom_emoji_id;
- Messageextended with- forum_topic_created,- forum_topic_closedand- forum_topic_reopened;
- Following message events added ForumTopicCreated,ForumTopicClosedandForumTopicReopened;
- can_manage_topicsfield added to- ChatAdministratorRights,- ChatPermissionsand- ChatMemberdata types;
- PromoteChatMemberRequestextended with- can_manage_topicstoo;
- message_thread_idfield added to following methods requests:- sendMessage,- sendPhoto,- sendVideo,- sendAnimation,- sendAudio,- sendDocument,- sendSticker,- sendVideoNote,- sendVoice,- sendLocation,- sendVenue,- sendContact,- sendPoll,- sendDice,- sendInvoice,- sendGame,- sendMediaGroup,- copyMessageand- forwardMessage;
- Forum management, i.e. added following functions: createForumTopic,editForumTopic,closeForumTopic,reopenForumTopic,deleteForumTopic,unpinAllForumTopicMessagesandgetForumTopicIconStickers;
 
0.6.2
- Fix decoding for VideoChatStarted(see #132);
0.6.1
- Fix response parsing in UpdatingMessages(see #131);
- Move from short polling to long polling (see #129);
0.6
- 
Fix newlines unexpected removing in UpdateParsermodule (see #124);
- 
Add WebHooks support (see #127); 
- 
Fix parse_modeencoding insendPhoto,sendDocument,sendVideoandsendAnimationmethods (see #123 and 5ee5289);
- 
Make package complaint with Telegram Bot API 6.2 (breaking changes included) (see fab1aee): - Added createInvoiceLinkmethod;
- Added getCustomEmojiStickersmethod;
- Userextended with- is_premiumand- added_to_attachment_menu;
- Chatextended with- has_restricted_voice_and_video_messages,- join_to_send_messages,- join_by_request;
- MessageEntityTypeextended with- custom_emoji;- file_sizefield for- Animation,- Audio,- Document,- Video,- VideoNote- Voice,- Filechanged from- Intto- Integer;
- SticketSetmodified:- contains_masksis optional now and becoming a subject of further deprecation in a future,- typeadded;
- Added StickerSetType: could beregular,maskandcustom_emoji.
 
- Added 
0.5.2
- Helpers from UpdateParsermodule fixed,commandWithBotNameadded (see #121);
0.5.1
- Fix inconsistency around ParseMode(see #114);
- Fix copyMessagemethod (see #116);
- Add CI via GitHub Actions (see #119);
- Fix GHC 9.0 compilation regression (see #120);
0.5
- 
Add MarkdownV2toParseModehaddock suggestion (see #110);
- 
Make package complaint with Telegram Bot API 6.0 (breaking changes included) (see #112): - WebAppInfodata type added.- KeyboardButton,- InlineKeyboardButtonextended with- web_apprecord.
- SentWebAppMessagedata type added.- answerWebAppQuerymethod added.
- MenuButtondata type added.- setChatMenuButton,- getChatMenuButtonmethods added.
- ChatAdministratorRightsdata type added.- setMyDefaultAdministratorRights,- getMyDefaultAdministratorRightsmethods added.
- :warning: ChatMemberrecords changed:can_manage_voice_chatsrenamed tocan_manage_video_chat.
- :warning: PromoteChatMemberRequestrecords changed:can_manage_voice_chatsrenamed tocan_manage_video_chats.
- :warning: Messagerecords changed:voice_chat_scheduled,voice_chat_started,voice_chat_ended, andvoice_chat_participants_invitedrenamed tovideo_chat_scheduled,video_chat_started,video_chat_ended, andvideo_chat_participants_invitedcorrespondingly.
 
0.4.5
0.4.4
- Fix build on Windows (see #107);
0.4.3
- Add support spoilermessage type andprotect_contentfield for various methods (see #103);
0.4.2
- Fix GHC 9.0 compilation (see #102 );
0.4.1
0.4
- Add Payments methods (see #93);
- Add Passport methods (see #90);
- Resolve discrepancies with Bot API 5.5 (see #87, #88)
- Make startPollingpolymorphic (see #86);
- Add Updating messages methods (see #85) ;
- Add missing methods (see #83, #84);
- Add GameBot(see #82, #95);
- Allow return different types in BotM(see #79, #98);
- Fix UserIdinteger overflow (see #78);
- Upgrade EchoBotexample with sticker replies (see #77);
- Refactor file uploads (see #76);
- Add Stickers methods (see #72, #73, #74 and #75);
- Refactor FileInfo(see #71);
- Add Game methods (see #70);
- Fix MessageIdinteger overflow (see #69);
- Add missing types (see #66, #81);
0.3.8
- Fix notification disable mechanism in sendDocumentfunction (see #54);
- Implement getFileandsendPhotoAPI methods (see #49);
0.3.7
- Add inline mode support (see #45);
0.3.6
0.3.5
- Restore backward compatibility with older GHCs (see #40);
0.3.4
0.3.3
- Derive Hashable for MessageId (see #36);
0.3.2
0.3.1
- Implement sendDocument function support. (see #31);
- Add Travis CI (see #32);
- Add MonadFail instance for UpdateParser (see #27);
0.3.0
- Add underlineandstrikethroughMessageEntityTypes(see #25);
- Fix for Stack 15 (see #24);
- Fix installation after breaking change in servant-0.16(see #21);
- Add phonenumbertype (see #23);
- Add cashtagmessage entity type (close #19) (see #20);
- Feat/kick chat member (see #17);
- Feat/delete message method (see #16);
- Fix startBotAsync, addprocessActionsIndefinitely(see #12);
- Add some badges to README (Hackage/Stackage/Travis) (see 11f13f3);
- Remove temporary files/scriptsfrom repo (see 6bc9f48);
- Add info about LambdaConf 2018 workshop and contributing (see 1ba4d95);
- Add Data.Monoidimport to fix builds on GHC 8.2 (see c798001);
0.2.0
- 
Major changes: - Add bot jobs support (see 9e0424e);
- Add Telegram.Bot.Simple.Debug(see7db84c5,49679d4,5ba949b);
- Introduce BotEnvwith model state and action queue (see98c869a);
- Add support for message editing (see b7c83a4);
- Introduce replyOrEdithelper (seeecc21cd);
- Add useLatestUpdateInJobs helper to enable reply in jobs (see 385f9e6,8a12ceb,448bcd2);
 
- Add bot jobs support (see 
- 
Minor changes: - Add getEnvTokenhelper (seece7d1f7);
- Add IsStringinstance forTelegram.Token(seef105bb9);
- Print Servant errors when getUpdatesfails (seebc7c5bb);
- Split Telegram.Bot.Simpleinto several submodules (see8ed2783);
- Add withEffecthelper inTelegram.Bot.Simple.Eff(seeaebba52);
- More Haddock documentation;
 
- Add 
- 
Fixes: 
