tgbotxx 1.1.9.2
Telegram Bot C++ Library
Loading...
Searching...
No Matches
Api.hpp
Go to the documentation of this file.
1#pragma once
2#include <cpr/cpr.h>
3#include <functional>
4#include <nlohmann/json.hpp>
5#include <optional>
6#include <string>
8#include <variant>
9namespace nl = nlohmann;
10
11namespace tgbotxx {
13 struct User;
14 struct Message;
15 struct Update;
16 struct Chat;
17 struct MessageEntity;
18 struct IReplyMarkup;
19 struct MessageId;
20 struct InputMedia;
21 struct UserProfilePhotos;
22 struct File;
23 struct ChatMember;
24 struct ChatPermissions;
25 struct ChatInviteLink;
26 struct Sticker;
27 struct ForumTopic;
28 struct BotCommand;
29 struct BotCommandScope;
30 struct BotName;
32 struct BotDescription;
33 struct InlineQueryResult;
35 struct MenuButton;
37 struct WebhookInfo;
38 struct Poll;
39 struct InputPollOption;
40 struct LabeledPrice;
41 struct ShippingOption;
42 struct SentWebAppMessage;
43 struct ReplyParameters;
44 struct StickerSet;
45 struct InputSticker;
46 struct MaskPosition;
48 struct GameHighScore;
49 struct ReactionType;
50 struct LinkPreviewOptions;
52 struct InputChecklist;
53 struct UserChatBoosts;
54 struct Gifts;
55 struct InputProfilePhoto;
56 struct AcceptedGiftTypes;
57 struct StarAmount;
58 struct OwnedGifts;
59 struct InputStoryContent;
60 struct Story;
61 struct StoryArea;
62 struct StarTransactions;
63 struct InputPaidMedia;
64
75 class Api {
76 friend class Bot;
77
78 static const std::string DEFAULT_API_URL;
79 static const cpr::ConnectTimeout DEFAULT_CONNECT_TIMEOUT;
80 static const cpr::Timeout DEFAULT_TIMEOUT;
81 static const cpr::Timeout DEFAULT_LONG_POLL_TIMEOUT;
82 static const cpr::Timeout DEFAULT_UPLOAD_FILES_TIMEOUT;
83 static const cpr::Timeout DEFAULT_DOWNLOAD_FILES_TIMEOUT;
84
85 const std::string m_token;
86 std::string m_apiUrl = DEFAULT_API_URL;
87 cpr::ConnectTimeout m_connectTimeout = DEFAULT_CONNECT_TIMEOUT;
88 cpr::Timeout m_timeout = DEFAULT_TIMEOUT;
89 cpr::Timeout m_longPollTimeout = DEFAULT_LONG_POLL_TIMEOUT;
90 cpr::Timeout m_uploadFilesTimeout = DEFAULT_UPLOAD_FILES_TIMEOUT;
91 cpr::Timeout m_downloadFilesTimeout = DEFAULT_DOWNLOAD_FILES_TIMEOUT;
92 cpr::Proxies m_proxies = cpr::Proxies();
93 std::vector<std::string> m_allowedUpdates;
98 struct Cache {
99 std::string botUsername;
100 std::vector<std::string> botCommands;
101
102 void refresh(const Api*);
103 };
104 mutable Cache m_cache{};
105
106 public:
109 explicit Api(const std::string& token);
110
111 public:
116
123 bool logOut() const;
124
131 bool close() const;
132
155 Ptr<Message> sendMessage(const std::variant<std::int64_t, std::string>& chatId,
156 const std::string& text,
157 std::int32_t messageThreadId = 0,
158 const std::string& parseMode = "",
159 const std::vector<Ptr<MessageEntity>>& entities = std::vector<Ptr<MessageEntity>>(),
160 bool disableNotification = false,
161 bool protectContent = false,
162 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
163 const std::string& businessConnectionId = "",
164 std::int32_t directMessagesTopicId = 0,
165 const Ptr<LinkPreviewOptions>& linkPreviewOptions = nullptr,
166 bool allowPaidBroadcast = false,
167 const std::string& messageEffectId = "",
168 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
169 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
170
186 Ptr<Message> forwardMessage(const std::variant<std::int64_t, std::string>& chatId,
187 const std::variant<std::int64_t, std::string>& fromChatId,
188 std::int32_t messageId,
189 std::int32_t messageThreadId = 0,
190 bool disableNotification = false,
191 bool protectContent = false,
192 std::int32_t directMessagesTopicId = 0,
193 std::time_t videoStartTimestamp = 0,
194 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr) const;
195
196
213 std::vector<Ptr<MessageId>> forwardMessages(const std::variant<std::int64_t, std::string>& chatId,
214 const std::variant<std::int64_t, std::string>& fromChatId,
215 const std::vector<std::int32_t>& messageIds,
216 std::int32_t messageThreadId = 0,
217 bool disableNotification = false,
218 bool protectContent = false,
219 std::int32_t directMessagesTopicId = 0) const;
220
221
246 Ptr<MessageId> copyMessage(const std::variant<std::int64_t, std::string>& chatId,
247 const std::variant<std::int64_t, std::string>& fromChatId,
248 std::int32_t messageId,
249 std::int32_t messageThreadId = 0,
250 const std::string& caption = "",
251 const std::string& parseMode = "",
252 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
253 bool disableNotification = false,
254 bool protectContent = false,
255 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
256 std::int32_t directMessagesTopicId = 0,
257 std::time_t videoStartTimestamp = 0,
258 bool showCaptionAboveMedia = false,
259 bool allowPaidBroadcast = false,
260 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
261 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
262
282 std::vector<Ptr<MessageId>> copyMessages(const std::variant<std::int64_t, std::string>& chatId,
283 const std::variant<std::int64_t, std::string>& fromChatId,
284 const std::vector<std::int32_t>& messageIds,
285 std::int32_t messageThreadId = 0,
286 std::int32_t directMessagesTopicId = 0,
287 bool disableNotification = false,
288 bool protectContent = false,
289 bool removeCaption = false) const;
290
318 Ptr<Message> sendPhoto(const std::variant<std::int64_t, std::string>& chatId,
319 const std::variant<cpr::File, std::string>& photo,
320 std::int32_t messageThreadId = 0,
321 const std::string& caption = "",
322 const std::string& parseMode = "",
323 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
324 bool disableNotification = false,
325 bool protectContent = false,
326 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
327 const std::string& businessConnectionId = "",
328 std::int32_t directMessagesTopicId = 0,
329 bool showCaptionAboveMedia = false,
330 bool hasSpoiler = false,
331 bool allowPaidBroadcast = false,
332 const std::string& messageEffectId = "",
333 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
334 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
335
371 Ptr<Message> sendAudio(const std::variant<std::int64_t, std::string>& chatId,
372 const std::variant<cpr::File, std::string>& audio,
373 std::int32_t messageThreadId = 0,
374 const std::string& caption = "",
375 const std::string& parseMode = "",
376 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
377 std::time_t duration = 0,
378 const std::string& performer = "",
379 const std::string& title = "",
380 const std::optional<std::variant<cpr::File, std::string>>& thumbnail = std::nullopt,
381 bool disableNotification = false,
382 bool protectContent = false,
383 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
384 const std::string& businessConnectionId = "",
385 std::int32_t directMessagesTopicId = 0,
386 bool allowPaidBroadcast = false,
387 const std::string& messageEffectId = "",
388 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
389 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
390
391
421 Ptr<Message> sendDocument(const std::variant<std::int64_t, std::string>& chatId,
422 const std::variant<cpr::File, std::string>& document,
423 std::int32_t messageThreadId = 0,
424 const std::optional<std::variant<cpr::File, std::string>>& thumbnail = std::nullopt,
425 const std::string& caption = "",
426 const std::string& parseMode = "",
427 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
428 bool disableNotification = false,
429 bool protectContent = false,
430 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
431 const std::string& businessConnectionId = "",
432 std::int32_t directMessagesTopicId = 0,
433 bool disableContentTypeDetection = false,
434 bool allowPaidBroadcast = false,
435 const std::string& messageEffectId = "",
436 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
437 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
438
439
477 Ptr<Message> sendVideo(const std::variant<std::int64_t, std::string>& chatId,
478 const std::variant<cpr::File, std::string>& video,
479 std::int32_t messageThreadId = 0,
480 std::time_t duration = 0,
481 std::int32_t width = 0,
482 std::int32_t height = 0,
483 const std::optional<std::variant<cpr::File, std::string>>& thumbnail = std::nullopt,
484 const std::optional<std::variant<cpr::File, std::string>>& cover = std::nullopt,
485 std::time_t startTimestamp = 0,
486 const std::string& caption = "",
487 const std::string& parseMode = "",
488 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
489 bool showCaptionAboveMedia = false,
490 bool hasSpoiler = false,
491 bool supportsStreaming = false,
492 bool disableNotification = false,
493 bool protectContent = false,
494 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
495 const std::string& businessConnectionId = "",
496 std::int32_t directMessagesTopicId = 0,
497 bool allowPaidBroadcast = false,
498 const std::string& messageEffectId = "",
499 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
500 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
501
502
533 Ptr<Message> sendAnimation(const std::variant<std::int64_t, std::string>& chatId,
534 const std::variant<cpr::File, std::string>& animation,
535 std::int32_t messageThreadId = 0,
536 std::time_t duration = 0,
537 std::int32_t width = 0,
538 std::int32_t height = 0,
539 const std::optional<std::variant<cpr::File, std::string>>& thumbnail = std::nullopt,
540 const std::string& caption = "",
541 const std::string& parseMode = "",
542 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
543 bool disableNotification = false,
544 bool protectContent = false,
545 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
546 const std::string& businessConnectionId = "",
547 std::int32_t directMessagesTopicId = 0,
548 bool allowPaidBroadcast = false,
549 const std::string& messageEffectId = "",
550 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
551 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
552
553
577 Ptr<Message> sendVoice(const std::variant<std::int64_t, std::string>& chatId,
578 const std::variant<cpr::File, std::string>& voice,
579 std::int32_t messageThreadId = 0,
580 const std::string& caption = "",
581 const std::string& parseMode = "",
582 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
583 std::time_t duration = 0,
584 bool disableNotification = false,
585 bool protectContent = false,
586 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
587 const std::string& businessConnectionId = "",
588 std::int32_t directMessagesTopicId = 0,
589 bool allowPaidBroadcast = false,
590 const std::string& messageEffectId = "",
591 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
592 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
593
594
622 Ptr<Message> sendVideoNote(const std::variant<std::int64_t, std::string>& chatId,
623 const std::variant<cpr::File, std::string>& videoNote,
624 std::int32_t messageThreadId = 0,
625 std::time_t duration = 0,
626 std::int32_t length = 0,
627 const std::optional<std::variant<cpr::File, std::string>>& thumbnail = std::nullopt,
628 bool disableNotification = false,
629 bool protectContent = false,
630 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
631 const std::string& businessConnectionId = "",
632 std::int32_t directMessagesTopicId = 0,
633 bool allowPaidBroadcast = false,
634 const std::string& messageEffectId = "",
635 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
636 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
637
638
660 Ptr<Message> sendPaidMedia(const std::variant<std::int64_t, std::string>& chatId,
661 std::int32_t starCount,
662 const std::vector<Ptr<InputPaidMedia>>& media,
663 const std::string& payload = "",
664 std::int32_t messageThreadId = 0,
665 const std::string& caption = "",
666 const std::string& parseMode = "",
667 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
668 bool showCaptionAboveMedia = false,
669 bool disableNotification = false,
670 bool protectContent = false,
671 bool allowPaidBroadcast = false,
672 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
673 const std::string& businessConnectionId = "",
674 std::int32_t directMessagesTopicId = 0,
675 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
676 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
677
692 std::vector<Ptr<Message>> sendMediaGroup(const std::variant<std::int64_t, std::string>& chatId,
693 const std::vector<Ptr<InputMedia>>& media,
694 std::int32_t messageThreadId = 0,
695 bool disableNotification = false,
696 bool protectContent = false,
697 const std::string& businessConnectionId = "",
698 std::int32_t directMessagesTopicId = 0,
699 bool allowPaidBroadcast = false,
700 const std::string& messageEffectId = "",
701 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
702
703
723 Ptr<Message> sendLocation(const std::variant<std::int64_t, std::string>& chatId,
724 float latitude,
725 float longitude,
726 std::int32_t messageThreadId = 0,
727 float horizontalAccuracy = 0.0f,
728 std::int32_t livePeriod = 0,
729 std::int32_t heading = 0,
730 std::int32_t proximityAlertRadius = 0,
731 bool disableNotification = false,
732 bool protectContent = false,
733 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
734 const std::string& businessConnectionId = "",
735 std::int32_t directMessagesTopicId = 0,
736 bool allowPaidBroadcast = false,
737 const std::string& messageEffectId = "",
738 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
739 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
740
741
764 Ptr<Message> sendVenue(const std::variant<std::int64_t, std::string>& chatId,
765 float latitude,
766 float longitude,
767 const std::string& title,
768 const std::string& address,
769 std::int32_t messageThreadId = 0,
770 const std::string& foursquareId = "",
771 const std::string& foursquareType = "",
772 const std::string& googlePlaceId = "",
773 const std::string& googlePlaceType = "",
774 bool disableNotification = false,
775 bool protectContent = false,
776 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
777 const std::string& businessConnectionId = "",
778 std::int32_t directMessagesTopicId = 0,
779 bool allowPaidBroadcast = false,
780 const std::string& messageEffectId = "",
781 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
782 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
783
801 Ptr<Message> sendContact(const std::variant<std::int64_t, std::string>& chatId,
802 const std::string& phoneNumber,
803 const std::string& firstName,
804 const std::string& lastName = "",
805 const std::string& vcard = "",
806 std::int32_t messageThreadId = 0,
807 bool disableNotification = false,
808 bool protectContent = false,
809 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
810 const std::string& businessConnectionId = "",
811 std::int32_t directMessagesTopicId = 0,
812 bool allowPaidBroadcast = false,
813 const std::string& messageEffectId = "",
814 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
815 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
816
842 Ptr<Message> sendPoll(const std::variant<std::int64_t, std::string>& chatId,
843 const std::string& question,
844 const std::vector<Ptr<InputPollOption>>& options,
845 std::int32_t messageThreadId = 0,
846 const std::string& questionParseMode = "",
847 const std::vector<Ptr<MessageEntity>>& questionEntities = std::vector<Ptr<MessageEntity>>(),
848 bool isAnonymous = true,
849 const std::string& type = "regular",
850 bool allowsMultipleAnswers = false,
851 std::int32_t correctOptionId = -1,
852 const std::string& explanation = "",
853 const std::string& explanationParseMode = "",
854 const std::vector<Ptr<MessageEntity>>& explanationEntities = std::vector<Ptr<MessageEntity>>(),
855 std::time_t openPeriod = 0,
856 std::time_t closeDate = 0,
857 bool isClosed = false,
858 bool disableNotification = false,
859 bool protectContent = false,
860 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
861 const std::string& businessConnectionId = "",
862 bool allowPaidBroadcast = false,
863 const std::string& messageEffectId = "",
864 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
865
866
877 Ptr<Message> sendChecklist(const std::variant<std::int64_t, std::string>& chatId,
878 const std::string& businessConnectionId,
879 const Ptr<InputChecklist>& checklist,
880 bool disableNotification = false,
881 bool protectContent = false,
882 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
883 const std::string& messageEffectId = "",
884 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
885
886
906 Ptr<Message> sendDice(const std::variant<std::int64_t, std::string>& chatId,
907 const std::string& emoji = "🎲",
908 std::int32_t messageThreadId = 0,
909 bool disableNotification = false,
910 bool protectContent = false,
911 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
912 const std::string& businessConnectionId = "",
913 std::int32_t directMessagesTopicId = 0,
914 bool allowPaidBroadcast = false,
915 const std::string& messageEffectId = "",
916 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
917 const Ptr<ReplyParameters>& replyParameters = nullptr) const;
918
919
942 bool sendChatAction(const std::variant<std::int64_t, std::string>& chatId,
943 const std::string& action,
944 std::int32_t messageThreadId = 0,
945 const std::string& businessConnectionId = "") const;
946
947
959 bool setMessageReaction(const std::variant<std::int64_t, std::string>& chatId,
960 std::int32_t messageId,
961 const std::vector<Ptr<ReactionType>>& reaction = std::vector<Ptr<ReactionType>>(),
962 bool isBig = false) const;
963
964
973 std::int32_t offset = 0,
974 std::int32_t limit = 100) const;
975
976
986 Ptr<File> getFile(const std::string& fileId) const;
987
988
998 std::string downloadFile(const std::string& filePath, const std::function<bool(cpr::cpr_off_t downloadTotal, cpr::cpr_off_t downloadNow)>& progressCallback = nullptr) const;
999
1000
1013 bool banChatMember(const std::variant<std::int64_t, std::string>& chatId,
1014 std::int64_t userId,
1015 std::time_t untilDate = 0,
1016 bool revokeMessages = false) const;
1017
1018
1030 bool unbanChatMember(const std::variant<std::int64_t, std::string>& chatId,
1031 std::int64_t userId,
1032 bool onlyIfBanned = false) const;
1033
1034
1048 bool restrictChatMember(const std::variant<std::int64_t, std::string>& chatId,
1049 std::int64_t userId,
1050 const Ptr<ChatPermissions>& permissions,
1051 bool useIndependentChatPermissions = false,
1052 std::time_t untilDate = 0) const;
1053
1054
1080 bool promoteChatMember(const std::variant<std::int64_t, std::string>& chatId,
1081 std::int64_t userId,
1082 bool isAnonymous = false,
1083 bool canManageChat = false,
1084 bool canDeleteMessages = false,
1085 bool canManageVideoChats = false,
1086 bool canRestrictMembers = false,
1087 bool canPromoteMembers = false,
1088 bool canChangeInfo = false,
1089 bool canInviteUsers = false,
1090 bool canPostMessages = false,
1091 bool canEditMessages = false,
1092 bool canPinMessages = false,
1093 bool canPostStories = false,
1094 bool canEditStories = false,
1095 bool canDeleteStories = false,
1096 bool canManageTopics = false,
1097 bool canManageDirectMessages = false) const;
1098
1099
1107 bool setChatAdministratorCustomTitle(const std::variant<std::int64_t, std::string>& chatId,
1108 std::int64_t userId,
1109 const std::string& customTitle) const;
1110
1111
1122 bool banChatSenderChat(const std::variant<std::int64_t, std::string>& chatId,
1123 std::int64_t senderChatId) const;
1124
1125
1135 bool unbanChatSenderChat(const std::variant<std::int64_t, std::string>& chatId,
1136 std::int64_t senderChatId) const;
1137
1138
1150 bool setChatPermissions(const std::variant<std::int64_t, std::string>& chatId,
1151 const Ptr<ChatPermissions>& permissions,
1152 bool useIndependentChatPermissions = false) const;
1153
1154
1169 std::string exportChatInviteLink(const std::variant<std::int64_t, std::string>& chatId) const;
1170
1171
1184 Ptr<ChatInviteLink> createChatInviteLink(const std::variant<std::int64_t, std::string>& chatId,
1185 const std::string& name = "",
1186 std::time_t expireDate = 0,
1187 std::int32_t memberLimit = 0,
1188 bool createsJoinRequest = false) const;
1189
1190
1203 Ptr<ChatInviteLink> editChatInviteLink(const std::variant<std::int64_t, std::string>& chatId,
1204 const std::string& inviteLink,
1205 const std::string& name = "",
1206 std::time_t expireDate = 0,
1207 std::int32_t memberLimit = 0,
1208 bool createsJoinRequest = false) const;
1209
1221 Ptr<ChatInviteLink> createChatSubscriptionInviteLink(const std::variant<std::int64_t, std::string>& chatId,
1222 std::time_t subscriptionPeriod,
1223 std::int32_t subscriptionPrice,
1224 const std::string& name = "") const;
1225
1235 Ptr<ChatInviteLink> editChatSubscriptionInviteLink(const std::variant<std::int64_t, std::string>& chatId,
1236 const std::string& inviteLink,
1237 const std::string& name = "") const;
1238
1239
1248 Ptr<ChatInviteLink> revokeChatInviteLink(const std::variant<std::int64_t, std::string>& chatId, const std::string& inviteLink) const;
1249
1250
1259 bool approveChatJoinRequest(const std::variant<std::int64_t, std::string>& chatId, std::int64_t userId) const;
1260
1261
1270 bool declineChatJoinRequest(const std::variant<std::int64_t, std::string>& chatId, std::int64_t userId) const;
1271
1272
1281 bool setChatPhoto(const std::variant<std::int64_t, std::string>& chatId, const cpr::File& photo) const;
1282
1283
1291 bool deleteChatPhoto(const std::variant<std::int64_t, std::string>& chatId) const;
1292
1293
1301 bool setChatTitle(const std::variant<std::int64_t, std::string>& chatId, const std::string& title) const;
1302
1303
1311 bool setChatDescription(const std::variant<std::int64_t, std::string>& chatId, const std::string& description = "") const;
1312
1313
1326 bool pinChatMessage(const std::variant<std::int64_t, std::string>& chatId,
1327 std::int32_t messageId,
1328 bool disableNotification = false,
1329 const std::string& businessConnectionId = "") const;
1330
1331
1342 bool unpinChatMessage(const std::variant<std::int64_t, std::string>& chatId,
1343 std::int32_t messageId = 0,
1344 const std::string& businessConnectionId = "") const;
1345
1346
1355 bool unpinAllChatMessages(const std::variant<std::int64_t, std::string>& chatId) const;
1356
1357
1363 bool leaveChat(const std::variant<std::int64_t, std::string>& chatId) const;
1364
1365
1371 Ptr<Chat> getChat(const std::variant<std::int64_t, std::string>& chatId) const;
1372
1373
1379 std::vector<Ptr<ChatMember>> getChatAdministrators(const std::variant<std::int64_t, std::string>& chatId) const;
1380
1381
1387 std::int32_t getChatMemberCount(const std::variant<std::int64_t, std::string>& chatId) const;
1388
1389
1397 Ptr<ChatMember> getChatMember(const std::variant<std::int64_t, std::string>& chatId, std::int64_t userId) const;
1398
1399
1409 bool setChatStickerSet(const std::variant<std::int64_t, std::string>& chatId, const std::string& stickerSetName) const;
1410
1411
1420 bool deleteChatStickerSet(const std::variant<std::int64_t, std::string>& chatId) const;
1421
1422
1430 std::vector<Ptr<Sticker>> getForumTopicIconStickers() const;
1431
1432
1444 Ptr<ForumTopic> createForumTopic(const std::variant<std::int64_t, std::string>& chatId,
1445 const std::string& name,
1446 std::int32_t iconColor = 0x000000,
1447 const std::string& iconCustomEmojiId = "") const;
1448
1449
1463 bool editForumTopic(const std::variant<std::int64_t, std::string>& chatId,
1464 std::int32_t messageThreadId,
1465 const std::string& name,
1466 const std::optional<std::string>& iconCustomEmojiId = std::nullopt) const;
1467
1468
1478 bool closeForumTopic(const std::variant<std::int64_t, std::string>& chatId, std::int32_t messageThreadId) const;
1479
1480
1490 bool reopenForumTopic(const std::variant<std::int64_t, std::string>& chatId, std::int32_t messageThreadId) const;
1491
1492
1502 bool deleteForumTopic(const std::variant<std::int64_t, std::string>& chatId, std::int32_t messageThreadId) const;
1503
1504
1513 bool unpinAllForumTopicMessages(const std::variant<std::int64_t, std::string>& chatId, std::int32_t messageThreadId) const;
1514
1515
1523 bool editGeneralForumTopic(const std::variant<std::int64_t, std::string>& chatId, const std::string& name) const;
1524
1525
1532 bool closeGeneralForumTopic(const std::variant<std::int64_t, std::string>& chatId) const;
1533
1534
1541 bool reopenGeneralForumTopic(const std::variant<std::int64_t, std::string>& chatId) const;
1542
1543
1550 bool hideGeneralForumTopic(const std::variant<std::int64_t, std::string>& chatId) const;
1551
1552
1559 bool unhideGeneralForumTopic(const std::variant<std::int64_t, std::string>& chatId) const;
1560
1561
1568 bool unpinAllGeneralForumTopicMessages(const std::variant<std::int64_t, std::string>& chatId) const;
1569
1570
1587 bool answerCallbackQuery(const std::string& callbackQueryId,
1588 const std::string& text = "",
1589 bool showAlert = false,
1590 const std::string& url = "",
1591 std::time_t cacheTime = 0) const;
1592
1599 Ptr<UserChatBoosts> getUserChatBoosts(const std::variant<std::int64_t, std::string>& chatId,
1600 std::int64_t userId) const;
1601
1611 bool setMyCommands(const std::vector<Ptr<BotCommand>>& commands,
1612 const Ptr<BotCommandScope>& scope = nullptr,
1613 const std::string& languageCode = "") const;
1614
1615
1624 bool deleteMyCommands(const Ptr<BotCommandScope>& scope = nullptr, const std::string& languageCode = "") const;
1625
1626
1633 std::vector<Ptr<BotCommand>> getMyCommands(const Ptr<BotCommandScope>& scope = nullptr, const std::string& languageCode = "") const;
1634
1635
1642 bool setMyName(const std::string& name = "", const std::string& languageCode = "") const;
1643
1644
1650 Ptr<BotName> getMyName(const std::string& languageCode = "") const;
1651
1652
1659 bool setMyDescription(const std::string& description = "", const std::string& languageCode = "") const;
1660
1661
1667 Ptr<BotDescription> getMyDescription(const std::string& languageCode = "") const;
1668
1675 bool setMyShortDescription(const std::string& shortDescription = "", const std::string& languageCode = "") const;
1676
1682 Ptr<BotShortDescription> getMyShortDescription(const std::string& languageCode = "") const;
1683
1690 bool setChatMenuButton(const std::variant<std::int64_t, std::string>& chatId = std::string{}, const Ptr<MenuButton>& menuButton = nullptr) const;
1691
1697 Ptr<MenuButton> getChatMenuButton(const std::variant<std::int64_t, std::string>& chatId = std::string{}) const;
1698
1706 bool setMyDefaultAdministratorRights(const Ptr<ChatAdministratorRights>& rights = nullptr, bool forChannels = false) const;
1707
1714
1715 public: // Gifts
1721
1733 bool sendGift(const std::string& giftId,
1734 std::int64_t userId = 0,
1735 const std::variant<std::int64_t, std::string>& chatId = 0,
1736 bool payForUpgrade = false,
1737 const std::string& text = "",
1738 const std::string& textParseMode = "",
1739 const std::vector<Ptr<MessageEntity>>& textEntities = std::vector<Ptr<MessageEntity>>()) const;
1740
1753 bool giftPremiumSubscription(std::int64_t userId,
1754 std::int32_t monthCount,
1755 std::int32_t starCount,
1756 const std::string& text = "",
1757 const std::string& textParseMode = "",
1758 const std::vector<Ptr<MessageEntity>>& textEntities = std::vector<Ptr<MessageEntity>>()) const;
1759
1760 public: // Verification
1769 bool verifyUser(std::int64_t userId, const std::string& customDescription = "") const;
1770
1779 bool verifyChat(const std::variant<std::int64_t, std::string>& chatId, const std::string& customDescription = "") const;
1780
1787 bool removeUserVerification(std::int64_t userId) const;
1788
1795 bool removeChatVerification(const std::variant<std::int64_t, std::string>& chatId) const;
1796
1797 public: // Business
1806 bool readBusinessMessage(const std::string& businessConnectionId,
1807 const std::variant<std::int64_t, std::string>& chatId,
1808 std::int32_t messageId) const;
1809
1819 bool deleteBusinessMessages(const std::string& businessConnectionId,
1820 const std::vector<std::int32_t>& messageIds) const;
1821
1829 bool setBusinessAccountName(const std::string& businessConnectionId,
1830 const std::string& firstName,
1831 const std::string& lastName = "") const;
1832
1839 bool setBusinessAccountUsername(const std::string& businessConnectionId,
1840 const std::string& username = "") const;
1841
1848 bool setBusinessAccountBio(const std::string& businessConnectionId,
1849 const std::string& bio = "") const;
1850
1858 bool setBusinessAccountProfilePhoto(const std::string& businessConnectionId,
1859 const Ptr<InputProfilePhoto>& photo,
1860 bool isPublic = false) const;
1861
1869 bool removeBusinessAccountProfilePhoto(const std::string& businessConnectionId,
1870 bool isPublic = false) const;
1871
1879 bool setBusinessAccountGiftSettings(const std::string& businessConnectionId,
1880 bool showGiftButton,
1881 const Ptr<AcceptedGiftTypes>& acceptedGiftTypes) const;
1882
1889 Ptr<StarAmount> getBusinessAccountStarBalance(const std::string& businessConnectionId) const;
1890
1897 bool transferBusinessAccountStars(const std::string& businessConnectionId,
1898 std::int32_t starCount) const;
1899
1914 Ptr<OwnedGifts> getBusinessAccountGifts(const std::string& businessConnectionId,
1915 bool excludeUnsaved = false,
1916 bool excludeSaved = false,
1917 bool excludeUnlimited = false,
1918 bool excludeLimited = false,
1919 bool excludeUnique = false,
1920 bool sortByPrice = false,
1921 const std::string& offset = "",
1922 std::int32_t limit = 100) const;
1923
1930 bool convertGiftToStars(const std::string& businessConnectionId, const std::string& ownedGiftId) const;
1931
1942 bool upgradeGift(const std::string& businessConnectionId,
1943 const std::string& ownedGiftId,
1944 bool keepOriginalDetails = false,
1945 std::int32_t starCount = -1) const;
1946
1956 bool transferGift(const std::string& businessConnectionId,
1957 const std::string& ownedGiftId,
1958 std::int64_t newOwnerChatId,
1959 std::int32_t starCount = -1) const;
1960
1961 public: // Story
1975 Ptr<Story> postStory(const std::string& businessConnectionId,
1976 const Ptr<InputStoryContent>& content,
1977 std::time_t activePeriod,
1978 const std::string& caption = "",
1979 const std::string& parseMode = "",
1980 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
1981 const std::vector<Ptr<StoryArea>>& areas = std::vector<Ptr<StoryArea>>(),
1982 bool postToChatPage = false,
1983 bool protectContent = false) const;
1984
1996 Ptr<Story> editStory(const std::string& businessConnectionId,
1997 std::int32_t storyId,
1998 const Ptr<InputStoryContent>& content,
1999 const std::string& caption = "",
2000 const std::string& parseMode = "",
2001 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
2002 const std::vector<Ptr<StoryArea>>& areas = std::vector<Ptr<StoryArea>>()) const;
2003
2010 bool deleteStory(const std::string& businessConnectionId, std::int32_t storyId) const;
2011
2012 public:
2051 Ptr<Message> sendInvoice(const std::variant<std::int64_t, std::string>& chatId,
2052 const std::string& title,
2053 const std::string& description,
2054 const std::string& payload,
2055 const std::string& currency,
2056 const std::vector<Ptr<LabeledPrice>>& prices,
2057 const std::string& providerToken = "",
2058 std::int32_t messageThreadId = 0,
2059 std::int32_t maxTipAmount = 0,
2060 const std::vector<std::int32_t>& suggestedTipAmounts = std::vector<std::int32_t>(),
2061 const std::string& startParameter = "",
2062 const std::string& providerData = "",
2063 const std::string& photoUrl = "",
2064 std::int32_t photoSize = 0,
2065 std::int32_t photoWidth = 0,
2066 std::int32_t photoHeight = 0,
2067 bool needName = false,
2068 bool needPhoneNumber = false,
2069 bool needEmail = false,
2070 bool needShippingAddress = false,
2071 bool sendPhoneNumberToProvider = false,
2072 bool sendEmailToProvider = false,
2073 bool isFlexible = false,
2074 bool disableNotification = false,
2075 bool protectContent = false,
2076 bool allowPaidBroadcast = false,
2077 const std::string& messageEffectId = "",
2078 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr,
2079 const Ptr<IReplyMarkup>& replyMarkup = nullptr) const;
2080
2116 std::string createInvoiceLink(const std::string& title,
2117 const std::string& description,
2118 const std::string& payload,
2119 const std::string& currency,
2120 const std::vector<Ptr<LabeledPrice>>& prices,
2121 const std::string& businessConnectionId = "",
2122 const std::string& providerToken = "",
2123 std::time_t subscriptionPeriod = 0,
2124 std::int32_t maxTipAmount = 0,
2125 const std::vector<std::int32_t>& suggestedTipAmounts = std::vector<std::int32_t>(),
2126 const std::string& providerData = "",
2127 const std::string& photoUrl = "",
2128 std::int32_t photoSize = 0,
2129 std::int32_t photoWidth = 0,
2130 std::int32_t photoHeight = 0,
2131 bool needName = false,
2132 bool needPhoneNumber = false,
2133 bool needEmail = false,
2134 bool needShippingAddress = false,
2135 bool sendPhoneNumberToProvider = false,
2136 bool sendEmailToProvider = false,
2137 bool isFlexible = false) const;
2138
2139
2151 bool answerShippingQuery(const std::string& shippingQueryId,
2152 bool ok,
2153 const std::vector<Ptr<ShippingOption>>& shippingOptions = std::vector<Ptr<ShippingOption>>(),
2154 const std::string& errorMessage = "") const;
2155
2156
2168 bool answerPreCheckoutQuery(const std::string& preCheckoutQueryId,
2169 bool ok,
2170 const std::string& errorMessage = "") const;
2171
2178
2186 Ptr<StarTransactions> getStarTransactions(std::int32_t offset = 0, std::int32_t limit = 100) const;
2187
2194 bool refundStarPayment(std::int64_t userId, const std::string& telegramPaymentChargeId) const;
2195
2204 bool editUserStarSubscription(std::int64_t userId,
2205 const std::string& telegramPaymentChargeId,
2206 bool isCancelled) const;
2207
2208
2209 public:
2223 std::vector<Ptr<Update>> getUpdates(std::int32_t offset, std::int32_t limit = 100) const;
2224
2250 bool setWebhook(const std::string& url,
2251 const std::optional<cpr::File>& certificate = std::nullopt,
2252 const std::string& ipAddress = "",
2253 std::int32_t maxConnections = 40,
2254 const std::vector<std::string>& allowedUpdates = std::vector<std::string>(),
2255 bool dropPendingUpdates = false,
2256 const std::string& secretToken = "") const;
2257
2265 bool deleteWebhook(bool dropPendingUpdates = false) const;
2266
2273
2274 public:
2291 Ptr<Message> editMessageText(const std::string& text,
2292 const std::variant<std::int64_t, std::string>& chatId = 0,
2293 std::int32_t messageId = 0,
2294 const std::string& inlineMessageId = "",
2295 const std::string& parseMode = "",
2296 const std::vector<Ptr<MessageEntity>>& entities = std::vector<Ptr<MessageEntity>>(),
2297 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
2298 const std::string& businessConnectionId = "",
2299 const Ptr<LinkPreviewOptions>& linkPreviewOptions = nullptr) const;
2300
2301
2314 Ptr<Message> editMessageCaption(const std::variant<std::int64_t, std::string>& chatId = 0,
2315 std::int32_t messageId = 0,
2316 const std::string& inlineMessageId = "",
2317 const std::string& caption = "",
2318 const std::string& parseMode = "",
2319 const std::vector<Ptr<MessageEntity>>& captionEntities = std::vector<Ptr<MessageEntity>>(),
2320 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
2321 const std::string& businessConnectionId = "",
2322 bool showCaptionAboveMedia = false) const;
2323
2324
2337 const std::variant<std::int64_t, std::string>& chatId = 0,
2338 std::int32_t messageId = 0,
2339 const std::string& inlineMessageId = "",
2340 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
2341 const std::string& businessConnectionId = "") const;
2342
2343
2360 float longitude,
2361 const std::variant<std::int64_t, std::string>& chatId = 0,
2362 std::int32_t messageId = 0,
2363 const std::string& inlineMessageId = "",
2364 std::int32_t livePeriod = 0,
2365 float horizontalAccuracy = 0.0f,
2366 std::int32_t heading = 0,
2367 std::int32_t proximityAlertRadius = 0,
2368 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
2369 const std::string& businessConnectionId = "") const;
2370
2371
2380 Ptr<Message> stopMessageLiveLocation(const std::variant<std::int64_t, std::string>& chatId = 0,
2381 std::int32_t messageId = 0,
2382 const std::string& inlineMessageId = "",
2383 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
2384 const std::string& businessConnectionId = "") const;
2385
2395 std::int32_t messageId,
2396 const Ptr<InputChecklist>& checklist,
2397 const std::string& businessConnectionId,
2398 const Ptr<IReplyMarkup>& replyMarkup = nullptr) const;
2399
2408 Ptr<Message> editMessageReplyMarkup(const std::variant<std::int64_t, std::string>& chatId = 0,
2409 std::int32_t messageId = 0,
2410 const std::string& inlineMessageId = "",
2411 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
2412 const std::string& businessConnectionId = "") const;
2413
2414
2422 Ptr<Poll> stopPoll(const std::variant<std::int64_t, std::string>& chatId,
2423 std::int32_t messageId,
2424 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
2425 const std::string& businessConnectionId = "") const;
2426
2427
2434 bool approveSuggestedPost(std::int64_t chatId,
2435 std::int32_t messageId,
2436 std::time_t sendDate = 0) const;
2437
2444 bool declineSuggestedPost(std::int64_t chatId,
2445 std::int32_t messageId,
2446 const std::string& comment = "") const;
2447
2462 bool deleteMessage(const std::variant<std::int64_t, std::string>& chatId, std::int32_t messageId) const;
2463
2470 bool deleteMessages(const std::variant<std::int64_t, std::string>& chatId, const std::vector<std::int32_t>& messageIds) const;
2471
2472 public:
2495 Ptr<Message> sendSticker(const std::variant<std::int64_t, std::string>& chatId,
2496 const std::variant<cpr::File, std::string>& sticker,
2497 std::int32_t messageThreadId = 0,
2498 const std::string& emoji = "",
2499 bool disableNotification = false,
2500 bool protectContent = false,
2501 const Ptr<ReplyParameters>& replyParameters = nullptr,
2502 const Ptr<IReplyMarkup>& replyMarkup = nullptr,
2503 const std::string& businessConnectionId = "",
2504 std::int32_t directMessagesTopicId = 0,
2505 const Ptr<LinkPreviewOptions>& linkPreviewOptions = nullptr,
2506 bool allowPaidBroadcast = false,
2507 const std::string& messageEffectId = "",
2508 const Ptr<SuggestedPostParameters>& suggestedPostParameters = nullptr) const;
2509
2515 Ptr<StickerSet> getStickerSet(const std::string& name) const;
2516
2522 std::vector<Ptr<Sticker>> getCustomEmojiStickers(const std::vector<std::string>& customEmojiIds) const;
2523
2533 Ptr<File> uploadStickerFile(std::int64_t userId,
2534 const cpr::File& sticker,
2535 const std::string& stickerFormat) const;
2536
2551 bool createNewStickerSet(std::int64_t userId,
2552 const std::string& name,
2553 const std::string& title,
2554 const std::vector<Ptr<InputSticker>>& stickers,
2555 const std::string& stickerType = "regular",
2556 bool needsRepainting = false) const;
2557
2568 bool addStickerToSet(std::int64_t userId,
2569 const std::string& name,
2570 const Ptr<InputSticker>& sticker) const;
2571
2578 bool setStickerPositionInSet(const std::string& sticker, std::int32_t position) const;
2579
2585 bool deleteStickerFromSet(const std::string& sticker) const;
2586
2597 bool replaceStickerInSet(std::int64_t userId,
2598 const std::string& name,
2599 const std::string& oldSticker,
2600 const Ptr<InputSticker>& sticker) const;
2601
2609 bool setStickerEmojiList(const std::string& sticker, const std::vector<std::string>& emojiList) const;
2610
2618 bool setStickerKeywords(const std::string& sticker, const std::vector<std::string>& keywords = std::vector<std::string>()) const;
2619
2627 bool setStickerMaskPosition(const std::string& sticker,
2628 const Ptr<MaskPosition>& maskPosition = nullptr) const;
2629
2636 bool setStickerSetTitle(const std::string& name, const std::string& title) const;
2637
2654 bool setStickerSetThumbnail(const std::string& name,
2655 std::int64_t userId,
2656 const std::string& format,
2657 const std::optional<std::variant<cpr::File, std::string>>& thumbnail = std::nullopt) const;
2658
2666 bool setCustomEmojiStickerSetThumbnail(const std::string& name, const std::optional<std::string>& customEmojiId = std::nullopt) const;
2667
2673 bool deleteStickerSet(const std::string& name) const;
2674
2675 public:
2687 bool setPassportDataErrors(std::int64_t userId, const std::vector<Ptr<PassportElementError>>& errors) const;
2688
2689 public:
2702 Ptr<Message> sendGame(const std::variant<std::int64_t, std::string>& chatId,
2703 const std::string& gameShortName,
2704 std::int32_t messageThreadId = 0,
2705 bool disableNotification = false,
2706 bool protectContent = false,
2707 const Ptr<ReplyParameters>& replyParameters = nullptr,
2708 const Ptr<IReplyMarkup>& replyMarkup = nullptr) const;
2709
2721 Ptr<Message> setGameScore(std::int64_t userId,
2722 std::int32_t score,
2723 bool force = false,
2724 bool disableEditMessage = false,
2725 std::int64_t chatId = 0,
2726 std::int32_t messageId = 0,
2727 const std::string& inlineMessageId = "") const;
2728
2729
2741 std::vector<Ptr<GameHighScore>> getGameHighScores(std::int64_t userId,
2742 std::int64_t chatId = 0,
2743 std::int32_t messageId = 0,
2744 const std::string& inlineMessageId = "") const;
2745
2746 public:
2760 bool answerInlineQuery(const std::string& inlineQueryId,
2761 const std::vector<Ptr<InlineQueryResult>>& results,
2762 std::int32_t cacheTime = 300,
2763 bool isPersonal = false,
2764 const std::string& nextOffset = "",
2765 const Ptr<InlineQueryResultsButton>& button = nullptr) const;
2766
2767
2775 Ptr<SentWebAppMessage> answerWebAppQuery(const std::string& webAppQueryId, const Ptr<InlineQueryResult>& result) const;
2776
2777 public:
2779 void setUrl(const std::string& url) noexcept;
2781 const std::string& getUrl() const noexcept;
2782
2784 void setLongPollTimeout(const cpr::Timeout& longPollTimeout);
2786 cpr::Timeout getLongPollTimeout() const noexcept;
2787
2789 void setConnectTimeout(const cpr::ConnectTimeout& timeout) noexcept;
2791 cpr::ConnectTimeout getConnectTimeout() const noexcept;
2792
2794 void setTimeout(const cpr::Timeout& timeout);
2796 cpr::Timeout getTimeout() const noexcept;
2797
2799 void setProxies(const cpr::Proxies& proxies);
2801 const cpr::Proxies& getProxies() const noexcept;
2802
2804 void setUploadFilesTimeout(const cpr::Timeout& timeout) noexcept;
2806 cpr::Timeout getUploadFilesTimeout() const noexcept;
2807
2809 void setDownloadFilesTimeout(const cpr::Timeout& timeout) noexcept;
2811 cpr::Timeout getDownloadFilesTimeout() const noexcept;
2812
2817 void setAllowedUpdates(const std::vector<std::string>& allowedUpdates) noexcept;
2819 const std::vector<std::string>& getAllowedUpdates() const noexcept;
2820
2823 const Cache& getCache() const noexcept;
2824
2825 private:
2826 nl::json sendRequest(const std::string& endpoint, const cpr::Multipart& data = cpr::Multipart({})) const;
2827 };
2828}
Api Methods https://core.telegram.org/bots/api#available-methods.
Definition Api.hpp:75
bool logOut() const
Use this method to log out from the cloud Bot API server before launching the bot locally....
bool setChatTitle(const std::variant< std::int64_t, std::string > &chatId, const std::string &title) const
Use this method to change the title of a chat. Titles can't be changed for private chats....
std::vector< Ptr< BotCommand > > getMyCommands(const Ptr< BotCommandScope > &scope=nullptr, const std::string &languageCode="") const
Use this method to get the current list of the bot's commands for the given scope and user language.
bool setBusinessAccountProfilePhoto(const std::string &businessConnectionId, const Ptr< InputProfilePhoto > &photo, bool isPublic=false) const
Changes the profile photo of a managed business account. Requires the can_edit_profile_photo business...
Ptr< Gifts > getAvailableGifts() const
Returns the list of gifts that can be sent by the bot to users and channel chats. Requires no paramet...
Ptr< Message > editMessageCaption(const std::variant< std::int64_t, std::string > &chatId=0, std::int32_t messageId=0, const std::string &inlineMessageId="", const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", bool showCaptionAboveMedia=false) const
Use this method to edit captions of messages.
bool reopenGeneralForumTopic(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to reopen a closed 'General' topic in a forum supergroup chat. The bot must be an adm...
Ptr< BotShortDescription > getMyShortDescription(const std::string &languageCode="") const
Use this method to get the current bot short description for the given user language.
std::vector< Ptr< Sticker > > getForumTopicIconStickers() const
Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user....
cpr::Timeout getTimeout() const noexcept
Get Api requests timeout.
Ptr< Poll > stopPoll(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageId, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="") const
Use this method to stop a poll which was sent by the bot.
bool setChatPhoto(const std::variant< std::int64_t, std::string > &chatId, const cpr::File &photo) const
Use this method to set a new profile photo for the chat. Photos can't be changed for private chats....
std::vector< Ptr< MessageId > > copyMessages(const std::variant< std::int64_t, std::string > &chatId, const std::variant< std::int64_t, std::string > &fromChatId, const std::vector< std::int32_t > &messageIds, std::int32_t messageThreadId=0, std::int32_t directMessagesTopicId=0, bool disableNotification=false, bool protectContent=false, bool removeCaption=false) const
Use this method to copy messages of any kind. /// If some of the specified messages can't be found or...
bool setBusinessAccountUsername(const std::string &businessConnectionId, const std::string &username="") const
Changes the first and last name of a managed business account. Requires the can_change_name business ...
void setUploadFilesTimeout(const cpr::Timeout &timeout) noexcept
Set Api file uploads timeout.
std::vector< Ptr< Update > > getUpdates(std::int32_t offset, std::int32_t limit=100) const
Use this method to receive incoming updates using long polling.
Ptr< Message > sendChecklist(const std::variant< std::int64_t, std::string > &chatId, const std::string &businessConnectionId, const Ptr< InputChecklist > &checklist, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &messageEffectId="", const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send a checklist on behalf of a connected business account. On success,...
bool unbanChatSenderChat(const std::variant< std::int64_t, std::string > &chatId, std::int64_t senderChatId) const
Use this method to unban a previously banned channel chat in a supergroup or channel....
Ptr< Message > editMessageText(const std::string &text, const std::variant< std::int64_t, std::string > &chatId=0, std::int32_t messageId=0, const std::string &inlineMessageId="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &entities=std::vector< Ptr< MessageEntity > >(), const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", const Ptr< LinkPreviewOptions > &linkPreviewOptions=nullptr) const
Use this method to edit text and game messages.
bool setChatMenuButton(const std::variant< std::int64_t, std::string > &chatId=std::string{}, const Ptr< MenuButton > &menuButton=nullptr) const
Use this method to change the bot's menu button in a private chat, or the default menu button.
Ptr< StickerSet > getStickerSet(const std::string &name) const
Use this method to get a sticker set. On success, a StickerSet object is returned.
bool sendChatAction(const std::variant< std::int64_t, std::string > &chatId, const std::string &action, std::int32_t messageThreadId=0, const std::string &businessConnectionId="") const
Use this method when you need to tell the user that something is happening on the bot's side....
Ptr< MenuButton > getChatMenuButton(const std::variant< std::int64_t, std::string > &chatId=std::string{}) const
Use this method to get the current value of the bot's menu button in a private chat,...
Ptr< ChatInviteLink > editChatInviteLink(const std::variant< std::int64_t, std::string > &chatId, const std::string &inviteLink, const std::string &name="", std::time_t expireDate=0, std::int32_t memberLimit=0, bool createsJoinRequest=false) const
Use this method to edit a non-primary invite link created by the bot. The bot must be an administrato...
Ptr< Message > sendGame(const std::variant< std::int64_t, std::string > &chatId, const std::string &gameShortName, std::int32_t messageThreadId=0, bool disableNotification=false, bool protectContent=false, const Ptr< ReplyParameters > &replyParameters=nullptr, const Ptr< IReplyMarkup > &replyMarkup=nullptr) const
Use this method to send a game.
bool deleteStickerSet(const std::string &name) const
Use this method to delete a sticker set that was created by the bot.
bool removeChatVerification(const std::variant< std::int64_t, std::string > &chatId) const
Removes verification from a chat that is currently verified on behalf of the organization represented...
void setTimeout(const cpr::Timeout &timeout)
Set Api requests timeout.
bool setChatDescription(const std::variant< std::int64_t, std::string > &chatId, const std::string &description="") const
Use this method to change the description of a group, a supergroup or a channel. The bot must be an a...
Ptr< StarTransactions > getStarTransactions(std::int32_t offset=0, std::int32_t limit=100) const
Returns the bot's Telegram Star transactions in chronological order. On success, returns a StarTransa...
bool setStickerSetThumbnail(const std::string &name, std::int64_t userId, const std::string &format, const std::optional< std::variant< cpr::File, std::string > > &thumbnail=std::nullopt) const
Use this method to set the thumbnail of a regular or mask sticker set. The format of the thumbnail fi...
bool pinChatMessage(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageId, bool disableNotification=false, const std::string &businessConnectionId="") const
Use this method to add a message to the list of pinned messages in a chat. If the chat is not a priva...
bool setBusinessAccountName(const std::string &businessConnectionId, const std::string &firstName, const std::string &lastName="") const
Changes the first and last name of a managed business account. Requires the can_change_name business ...
Ptr< ChatInviteLink > createChatSubscriptionInviteLink(const std::variant< std::int64_t, std::string > &chatId, std::time_t subscriptionPeriod, std::int32_t subscriptionPrice, const std::string &name="") const
Use this method to create a subscription invite link for a channel chat. The bot must have the can_in...
cpr::Timeout getDownloadFilesTimeout() const noexcept
Get Api file downloads timeout.
Ptr< ForumTopic > createForumTopic(const std::variant< std::int64_t, std::string > &chatId, const std::string &name, std::int32_t iconColor=0x000000, const std::string &iconCustomEmojiId="") const
Use this method to create a topic in a forum supergroup chat. The bot must be an administrator in the...
bool editUserStarSubscription(std::int64_t userId, const std::string &telegramPaymentChargeId, bool isCancelled) const
Allows the bot to cancel or re-enable extension of a subscription paid in Telegram Stars....
std::int32_t getChatMemberCount(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to get the number of members in a chat.
bool refundStarPayment(std::int64_t userId, const std::string &telegramPaymentChargeId) const
Refunds a successful payment in Telegram Stars. Returns True on success.
bool setStickerPositionInSet(const std::string &sticker, std::int32_t position) const
Use this method to move a sticker in a set created by the bot to a specific position.
bool verifyChat(const std::variant< std::int64_t, std::string > &chatId, const std::string &customDescription="") const
Verifies a chat on behalf of the organization which is represented by the bot.
Ptr< MessageId > copyMessage(const std::variant< std::int64_t, std::string > &chatId, const std::variant< std::int64_t, std::string > &fromChatId, std::int32_t messageId, std::int32_t messageThreadId=0, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, std::int32_t directMessagesTopicId=0, std::time_t videoStartTimestamp=0, bool showCaptionAboveMedia=false, bool allowPaidBroadcast=false, const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to copy messages of any kind. Service messages, paid media messages,...
void setAllowedUpdates(const std::vector< std::string > &allowedUpdates) noexcept
Ptr< OwnedGifts > getBusinessAccountGifts(const std::string &businessConnectionId, bool excludeUnsaved=false, bool excludeSaved=false, bool excludeUnlimited=false, bool excludeLimited=false, bool excludeUnique=false, bool sortByPrice=false, const std::string &offset="", std::int32_t limit=100) const
Returns the gifts received and owned by a managed business account. Requires the can_view_gifts_and_s...
const cpr::Proxies & getProxies() const noexcept
Get Api requests proxy.
Ptr< ChatInviteLink > editChatSubscriptionInviteLink(const std::variant< std::int64_t, std::string > &chatId, const std::string &inviteLink, const std::string &name="") const
Use this method to edit a subscription invite link created by the bot. The bot must have the can_invi...
Api(const std::string &token)
Constructs Api object.
std::string createInvoiceLink(const std::string &title, const std::string &description, const std::string &payload, const std::string &currency, const std::vector< Ptr< LabeledPrice > > &prices, const std::string &businessConnectionId="", const std::string &providerToken="", std::time_t subscriptionPeriod=0, std::int32_t maxTipAmount=0, const std::vector< std::int32_t > &suggestedTipAmounts=std::vector< std::int32_t >(), const std::string &providerData="", const std::string &photoUrl="", std::int32_t photoSize=0, std::int32_t photoWidth=0, std::int32_t photoHeight=0, bool needName=false, bool needPhoneNumber=false, bool needEmail=false, bool needShippingAddress=false, bool sendPhoneNumberToProvider=false, bool sendEmailToProvider=false, bool isFlexible=false) const
Use this method to create a link for an invoice. Returns the created invoice link as std::string on s...
Ptr< BotDescription > getMyDescription(const std::string &languageCode="") const
Use this method to get the current bot description for the given user language.
Ptr< Story > postStory(const std::string &businessConnectionId, const Ptr< InputStoryContent > &content, std::time_t activePeriod, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), const std::vector< Ptr< StoryArea > > &areas=std::vector< Ptr< StoryArea > >(), bool postToChatPage=false, bool protectContent=false) const
Posts a story on behalf of a managed business account. Requires the can_manage_stories business bot r...
void setDownloadFilesTimeout(const cpr::Timeout &timeout) noexcept
Set Api file downloads timeout.
bool transferBusinessAccountStars(const std::string &businessConnectionId, std::int32_t starCount) const
Transfers Telegram Stars from the business account balance to the bot's balance. Requires the can_tra...
bool setChatPermissions(const std::variant< std::int64_t, std::string > &chatId, const Ptr< ChatPermissions > &permissions, bool useIndependentChatPermissions=false) const
Use this method to set default chat permissions for all members. The bot must be an administrator in ...
bool transferGift(const std::string &businessConnectionId, const std::string &ownedGiftId, std::int64_t newOwnerChatId, std::int32_t starCount=-1) const
Transfers an owned unique gift to another user. Requires the can_transfer_and_upgrade_gifts business ...
Ptr< Message > sendPhoto(const std::variant< std::int64_t, std::string > &chatId, const std::variant< cpr::File, std::string > &photo, std::int32_t messageThreadId=0, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool showCaptionAboveMedia=false, bool hasSpoiler=false, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send photos. On success, the sent Message is returned.
const std::string & getUrl() const noexcept
Get Api URL.
bool giftPremiumSubscription(std::int64_t userId, std::int32_t monthCount, std::int32_t starCount, const std::string &text="", const std::string &textParseMode="", const std::vector< Ptr< MessageEntity > > &textEntities=std::vector< Ptr< MessageEntity > >()) const
Gifts a Telegram Premium subscription to the given user.
bool deleteMessages(const std::variant< std::int64_t, std::string > &chatId, const std::vector< std::int32_t > &messageIds) const
Use this method to delete multiple messages simultaneously. If some of the specified messages can't b...
bool readBusinessMessage(const std::string &businessConnectionId, const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageId) const
Marks incoming message as read on behalf of a business account. Requires the can_read_messages busine...
bool deleteWebhook(bool dropPendingUpdates=false) const
Use this method to remove webhook integration if you decide to switch back to getUpdates.
const Cache & getCache() const noexcept
Get cached data about this bot e.g: username, commands... Use this when possible to avoid unnecessary...
bool unpinAllChatMessages(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to clear the list of pinned messages in a chat. If the chat is not a private chat,...
bool answerInlineQuery(const std::string &inlineQueryId, const std::vector< Ptr< InlineQueryResult > > &results, std::int32_t cacheTime=300, bool isPersonal=false, const std::string &nextOffset="", const Ptr< InlineQueryResultsButton > &button=nullptr) const
Use this method to send answers to an inline query. No more than 50 results per query are allowed.
Ptr< Message > sendDocument(const std::variant< std::int64_t, std::string > &chatId, const std::variant< cpr::File, std::string > &document, std::int32_t messageThreadId=0, const std::optional< std::variant< cpr::File, std::string > > &thumbnail=std::nullopt, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool disableContentTypeDetection=false, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send general files.
Ptr< Message > sendAnimation(const std::variant< std::int64_t, std::string > &chatId, const std::variant< cpr::File, std::string > &animation, std::int32_t messageThreadId=0, std::time_t duration=0, std::int32_t width=0, std::int32_t height=0, const std::optional< std::variant< cpr::File, std::string > > &thumbnail=std::nullopt, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send animation files (GIFs or H.264/MPEG-4 AVC videos without sound).
bool banChatSenderChat(const std::variant< std::int64_t, std::string > &chatId, std::int64_t senderChatId) const
Use this method to ban a channel chat in a supergroup or a channel. Until the chat is unbanned,...
bool unhideGeneralForumTopic(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to unhide the 'General' topic in a forum supergroup chat. The bot must be an administ...
Ptr< Message > editMessageReplyMarkup(const std::variant< std::int64_t, std::string > &chatId=0, std::int32_t messageId=0, const std::string &inlineMessageId="", const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="") const
Use this method to edit only the reply markup of messages.
bool verifyUser(std::int64_t userId, const std::string &customDescription="") const
Verifies a user on behalf of the organization which is represented by the bot.
bool createNewStickerSet(std::int64_t userId, const std::string &name, const std::string &title, const std::vector< Ptr< InputSticker > > &stickers, const std::string &stickerType="regular", bool needsRepainting=false) const
Use this method to create a new sticker set owned by a user. The bot will be able to edit the sticker...
Ptr< ChatAdministratorRights > getMyDefaultAdministratorRights(bool forChannels=false) const
Use this method to get the current default administrator rights of the bot.
bool deleteStickerFromSet(const std::string &sticker) const
Use this method to delete a sticker from a set created by the bot.
Ptr< Message > sendAudio(const std::variant< std::int64_t, std::string > &chatId, const std::variant< cpr::File, std::string > &audio, std::int32_t messageThreadId=0, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), std::time_t duration=0, const std::string &performer="", const std::string &title="", const std::optional< std::variant< cpr::File, std::string > > &thumbnail=std::nullopt, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send audio files, if you want Telegram clients to display them in the music player...
bool setChatStickerSet(const std::variant< std::int64_t, std::string > &chatId, const std::string &stickerSetName) const
Use this method to set a new group sticker set for a supergroup. The bot must be an administrator in ...
bool unpinAllForumTopicMessages(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageThreadId) const
Use this method to clear the list of pinned messages in a forum topic. The bot must be an administrat...
bool answerShippingQuery(const std::string &shippingQueryId, bool ok, const std::vector< Ptr< ShippingOption > > &shippingOptions=std::vector< Ptr< ShippingOption > >(), const std::string &errorMessage="") const
If you sent an invoice requesting a shipping address and the parameter isFlexible was specified,...
bool setBusinessAccountBio(const std::string &businessConnectionId, const std::string &bio="") const
Changes the bio of a managed business account. Requires the can_change_bio business bot right.
std::string exportChatInviteLink(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to generate a new primary invite link for a chat; any previously generated primary li...
bool setStickerSetTitle(const std::string &name, const std::string &title) const
Use this method to set the title of a created sticker set.
bool declineSuggestedPost(std::int64_t chatId, std::int32_t messageId, const std::string &comment="") const
Use this method to decline a suggested post in a direct messages chat. The bot must have the 'can_man...
bool setCustomEmojiStickerSetThumbnail(const std::string &name, const std::optional< std::string > &customEmojiId=std::nullopt) const
Use this method to set the thumbnail of a custom emoji sticker set.
Ptr< ChatInviteLink > createChatInviteLink(const std::variant< std::int64_t, std::string > &chatId, const std::string &name="", std::time_t expireDate=0, std::int32_t memberLimit=0, bool createsJoinRequest=false) const
Use this method to create an additional invite link for a chat. The bot must be an administrator in t...
bool editGeneralForumTopic(const std::variant< std::int64_t, std::string > &chatId, const std::string &name) const
Use this method to edit the name of the 'General' topic in a forum supergroup chat....
bool unpinChatMessage(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageId=0, const std::string &businessConnectionId="") const
Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a ...
bool setPassportDataErrors(std::int64_t userId, const std::vector< Ptr< PassportElementError > > &errors) const
Informs a user that some of the Telegram Passport elements they provided contains errors....
bool deleteMyCommands(const Ptr< BotCommandScope > &scope=nullptr, const std::string &languageCode="") const
Use this method to delete the list of the bot's commands for the given scope and user language....
Ptr< BotName > getMyName(const std::string &languageCode="") const
Use this method to get the current bot name for the given user language.
bool replaceStickerInSet(std::int64_t userId, const std::string &name, const std::string &oldSticker, const Ptr< InputSticker > &sticker) const
Use this method to replace an existing sticker in a sticker set with a new one. The method is equival...
bool convertGiftToStars(const std::string &businessConnectionId, const std::string &ownedGiftId) const
Converts a given regular gift to Telegram Stars. Requires the can_convert_gifts_to_stars business bot...
Ptr< Message > sendVideo(const std::variant< std::int64_t, std::string > &chatId, const std::variant< cpr::File, std::string > &video, std::int32_t messageThreadId=0, std::time_t duration=0, std::int32_t width=0, std::int32_t height=0, const std::optional< std::variant< cpr::File, std::string > > &thumbnail=std::nullopt, const std::optional< std::variant< cpr::File, std::string > > &cover=std::nullopt, std::time_t startTimestamp=0, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), bool showCaptionAboveMedia=false, bool hasSpoiler=false, bool supportsStreaming=false, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send video files, if you want Telegram clients to display them as a video message.
bool editForumTopic(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageThreadId, const std::string &name, const std::optional< std::string > &iconCustomEmojiId=std::nullopt) const
Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an admin...
Ptr< ChatInviteLink > revokeChatInviteLink(const std::variant< std::int64_t, std::string > &chatId, const std::string &inviteLink) const
Use this method to revoke an invite link created by the bot. If the primary link is revoked,...
Ptr< Message > sendPoll(const std::variant< std::int64_t, std::string > &chatId, const std::string &question, const std::vector< Ptr< InputPollOption > > &options, std::int32_t messageThreadId=0, const std::string &questionParseMode="", const std::vector< Ptr< MessageEntity > > &questionEntities=std::vector< Ptr< MessageEntity > >(), bool isAnonymous=true, const std::string &type="regular", bool allowsMultipleAnswers=false, std::int32_t correctOptionId=-1, const std::string &explanation="", const std::string &explanationParseMode="", const std::vector< Ptr< MessageEntity > > &explanationEntities=std::vector< Ptr< MessageEntity > >(), std::time_t openPeriod=0, std::time_t closeDate=0, bool isClosed=false, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send a native poll. On success, the sent Message is returned.
std::vector< Ptr< ChatMember > > getChatAdministrators(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to get a list of administrators in a chat, which aren't bots.
Ptr< Message > sendDice(const std::variant< std::int64_t, std::string > &chatId, const std::string &emoji="🎲", std::int32_t messageThreadId=0, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send an animated emoji that will display a random value. On success,...
bool closeForumTopic(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageThreadId) const
Use this method to close an open topic in a forum supergroup chat. The bot must be an administrator i...
cpr::Timeout getLongPollTimeout() const noexcept
Get long polling timeout.
bool setMyDescription(const std::string &description="", const std::string &languageCode="") const
Use this method to change the bot's description, which is shown in the chat with the bot if the chat ...
bool removeBusinessAccountProfilePhoto(const std::string &businessConnectionId, bool isPublic=false) const
Removes the current profile photo of a managed business account. Requires the can_edit_profile_photo ...
bool deleteStory(const std::string &businessConnectionId, std::int32_t storyId) const
Deletes a story previously posted by the bot on behalf of a managed business account....
const std::vector< std::string > & getAllowedUpdates() const noexcept
Get list of the update types you want your bot to receive.
Ptr< Message > editMessageLiveLocation(float latitude, float longitude, const std::variant< std::int64_t, std::string > &chatId=0, std::int32_t messageId=0, const std::string &inlineMessageId="", std::int32_t livePeriod=0, float horizontalAccuracy=0.0f, std::int32_t heading=0, std::int32_t proximityAlertRadius=0, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="") const
Use this method to edit live location messages. A location can be edited until its livePeriod expires...
Ptr< Message > forwardMessage(const std::variant< std::int64_t, std::string > &chatId, const std::variant< std::int64_t, std::string > &fromChatId, std::int32_t messageId, std::int32_t messageThreadId=0, bool disableNotification=false, bool protectContent=false, std::int32_t directMessagesTopicId=0, std::time_t videoStartTimestamp=0, const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr) const
Use this method to forward messages of any kind. Service messages and messages with protected content...
bool unpinAllGeneralForumTopicMessages(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to clear the list of pinned messages in a General forum topic. The bot must be an adm...
bool approveSuggestedPost(std::int64_t chatId, std::int32_t messageId, std::time_t sendDate=0) const
Use this method to approve a suggested post in a direct messages chat. The bot must have the 'can_pos...
bool hideGeneralForumTopic(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to hide the 'General' topic in a forum supergroup chat. The bot must be an administra...
std::vector< Ptr< Message > > sendMediaGroup(const std::variant< std::int64_t, std::string > &chatId, const std::vector< Ptr< InputMedia > > &media, std::int32_t messageThreadId=0, bool disableNotification=false, bool protectContent=false, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send a group of photos, videos, or documents as an album. On success,...
Ptr< StarAmount > getBusinessAccountStarBalance(const std::string &businessConnectionId) const
Returns the amount of Telegram Stars owned by a managed business account. Requires the can_view_gifts...
Ptr< File > uploadStickerFile(std::int64_t userId, const cpr::File &sticker, const std::string &stickerFormat) const
Use this method to upload a file with a sticker for later use in the createNewStickerSet and addStick...
bool deleteChatStickerSet(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to delete a group sticker set from a supergroup. The bot must be an administrator in ...
cpr::Timeout getUploadFilesTimeout() const noexcept
Get Api file uploads timeout.
bool leaveChat(const std::variant< std::int64_t, std::string > &chatId) const
Use this method for your bot to leave a group, supergroup or channel.
bool setMyDefaultAdministratorRights(const Ptr< ChatAdministratorRights > &rights=nullptr, bool forChannels=false) const
Use this method to change the default administrator rights requested by the bot when it's added as an...
Ptr< ChatMember > getChatMember(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId) const
Use this method to get information about a member of a chat. The method is only guaranteed to work fo...
bool deleteMessage(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageId) const
Use this method to delete a message, including service messages, with the following limitations:
bool deleteForumTopic(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageThreadId) const
Use this method to delete a forum topic along with all its messages in a forum supergroup chat....
Ptr< Message > sendSticker(const std::variant< std::int64_t, std::string > &chatId, const std::variant< cpr::File, std::string > &sticker, std::int32_t messageThreadId=0, const std::string &emoji="", bool disableNotification=false, bool protectContent=false, const Ptr< ReplyParameters > &replyParameters=nullptr, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, const Ptr< LinkPreviewOptions > &linkPreviewOptions=nullptr, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr) const
Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers. On success,...
void setProxies(const cpr::Proxies &proxies)
Set Api requests proxy.
bool sendGift(const std::string &giftId, std::int64_t userId=0, const std::variant< std::int64_t, std::string > &chatId=0, bool payForUpgrade=false, const std::string &text="", const std::string &textParseMode="", const std::vector< Ptr< MessageEntity > > &textEntities=std::vector< Ptr< MessageEntity > >()) const
Sends a gift to the given user or channel chat. The gift can't be converted to Telegram Stars by the ...
bool setStickerKeywords(const std::string &sticker, const std::vector< std::string > &keywords=std::vector< std::string >()) const
Use this method to change search keywords assigned to a regular or custom emoji sticker....
bool answerPreCheckoutQuery(const std::string &preCheckoutQueryId, bool ok, const std::string &errorMessage="") const
Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmat...
std::string downloadFile(const std::string &filePath, const std::function< bool(cpr::cpr_off_t downloadTotal, cpr::cpr_off_t downloadNow)> &progressCallback=nullptr) const
Use this method to download a file from Telegram and save it in memory. For the moment,...
bool setChatAdministratorCustomTitle(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId, const std::string &customTitle) const
Use this method to set a custom title for an administrator in a supergroup promoted by the bot.
bool promoteChatMember(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId, bool isAnonymous=false, bool canManageChat=false, bool canDeleteMessages=false, bool canManageVideoChats=false, bool canRestrictMembers=false, bool canPromoteMembers=false, bool canChangeInfo=false, bool canInviteUsers=false, bool canPostMessages=false, bool canEditMessages=false, bool canPinMessages=false, bool canPostStories=false, bool canEditStories=false, bool canDeleteStories=false, bool canManageTopics=false, bool canManageDirectMessages=false) const
Use this method to promote or demote a user in a supergroup or a channel. The bot must be an administ...
void setLongPollTimeout(const cpr::Timeout &longPollTimeout)
Set long polling timeout.
void setConnectTimeout(const cpr::ConnectTimeout &timeout) noexcept
Set Api requests connection timeout.
Ptr< Message > sendContact(const std::variant< std::int64_t, std::string > &chatId, const std::string &phoneNumber, const std::string &firstName, const std::string &lastName="", const std::string &vcard="", std::int32_t messageThreadId=0, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send phone contacts. On success, the sent Message is returned.
std::vector< Ptr< Sticker > > getCustomEmojiStickers(const std::vector< std::string > &customEmojiIds) const
Use this method to get information about custom emoji stickers by their identifiers.
bool deleteBusinessMessages(const std::string &businessConnectionId, const std::vector< std::int32_t > &messageIds) const
Delete messages on behalf of a business account. Requires the can_delete_sent_messages business bot r...
bool setStickerEmojiList(const std::string &sticker, const std::vector< std::string > &emojiList) const
Use this method to change the list of emoji assigned to a regular or custom emoji sticker....
bool unbanChatMember(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId, bool onlyIfBanned=false) const
Use this method to unban a previously banned user in a supergroup or channel. The user will not retur...
Ptr< WebhookInfo > getWebhookInfo() const
Use this method to get current webhook status. Requires no parameters. On success,...
bool declineChatJoinRequest(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId) const
Use this method to decline a chat join request. The bot must be an administrator in the chat for this...
Ptr< UserProfilePhotos > getUserProfilePhotos(std::int64_t userId, std::int32_t offset=0, std::int32_t limit=100) const
Use this method to get a list of profile pictures for a user.
bool upgradeGift(const std::string &businessConnectionId, const std::string &ownedGiftId, bool keepOriginalDetails=false, std::int32_t starCount=-1) const
Upgrades a given regular gift to a unique gift. Requires the can_transfer_and_upgrade_gifts business ...
Ptr< Chat > getChat(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to get up to date information about the chat (current name of the user for one-on-one...
void setUrl(const std::string &url) noexcept
Set Api URL.
bool addStickerToSet(std::int64_t userId, const std::string &name, const Ptr< InputSticker > &sticker) const
Use this method to add a new sticker to a set created by the bot. The format of the added sticker mus...
bool setStickerMaskPosition(const std::string &sticker, const Ptr< MaskPosition > &maskPosition=nullptr) const
Use this method to change the mask position of a mask sticker. The sticker must belong to a sticker s...
Ptr< UserChatBoosts > getUserChatBoosts(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId) const
Use this method to get the list of boosts added to a chat by a user. Requires administrator rights in...
Ptr< Message > sendVenue(const std::variant< std::int64_t, std::string > &chatId, float latitude, float longitude, const std::string &title, const std::string &address, std::int32_t messageThreadId=0, const std::string &foursquareId="", const std::string &foursquareType="", const std::string &googlePlaceId="", const std::string &googlePlaceType="", bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send information about a venue. On success, the sent Message is returned.
Ptr< Message > sendLocation(const std::variant< std::int64_t, std::string > &chatId, float latitude, float longitude, std::int32_t messageThreadId=0, float horizontalAccuracy=0.0f, std::int32_t livePeriod=0, std::int32_t heading=0, std::int32_t proximityAlertRadius=0, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send a point on the map. On success, the sent Message is returned.
bool setBusinessAccountGiftSettings(const std::string &businessConnectionId, bool showGiftButton, const Ptr< AcceptedGiftTypes > &acceptedGiftTypes) const
Removes the current profile photo of a managed business account. Requires the can_edit_profile_photo ...
Ptr< Message > sendPaidMedia(const std::variant< std::int64_t, std::string > &chatId, std::int32_t starCount, const std::vector< Ptr< InputPaidMedia > > &media, const std::string &payload="", std::int32_t messageThreadId=0, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), bool showCaptionAboveMedia=false, bool disableNotification=false, bool protectContent=false, bool allowPaidBroadcast=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send paid media. On success, an array of the sent Messages is returned.
bool banChatMember(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId, std::time_t untilDate=0, bool revokeMessages=false) const
Use this method to ban a user in a group, a supergroup or a channel. In the case of supergroups and c...
bool removeUserVerification(std::int64_t userId) const
Removes verification from a user who is currently verified on behalf of the organization represented ...
bool setMyShortDescription(const std::string &shortDescription="", const std::string &languageCode="") const
Use this method to change the bot's short description, which is shown on the bot's profile page and i...
Ptr< Message > setGameScore(std::int64_t userId, std::int32_t score, bool force=false, bool disableEditMessage=false, std::int64_t chatId=0, std::int32_t messageId=0, const std::string &inlineMessageId="") const
Use this method to set the score of the specified user in a game message.
bool approveChatJoinRequest(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId) const
Use this method to approve a chat join request. The bot must be an administrator in the chat for this...
Ptr< File > getFile(const std::string &fileId) const
Use this method to get basic information about a file and prepare it for downloading....
bool setMyCommands(const std::vector< Ptr< BotCommand > > &commands, const Ptr< BotCommandScope > &scope=nullptr, const std::string &languageCode="") const
Use this method to change the list of the bot's commands. See this manual for more details about bot ...
Ptr< Message > editMessageMedia(const Ptr< InputMedia > &media, const std::variant< std::int64_t, std::string > &chatId=0, std::int32_t messageId=0, const std::string &inlineMessageId="", const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="") const
Use this method to edit animation, audio, document, photo, or video messages. If a message is part of...
Ptr< Message > stopMessageLiveLocation(const std::variant< std::int64_t, std::string > &chatId=0, std::int32_t messageId=0, const std::string &inlineMessageId="", const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="") const
Use this method to stop updating a live location message before livePeriod expires.
bool answerCallbackQuery(const std::string &callbackQueryId, const std::string &text="", bool showAlert=false, const std::string &url="", std::time_t cacheTime=0) const
Use this method to send answers to callback queries sent from inline keyboards. The answer will be di...
Ptr< SentWebAppMessage > answerWebAppQuery(const std::string &webAppQueryId, const Ptr< InlineQueryResult > &result) const
Use this method to set the result of an interaction with a Web App and send a corresponding message o...
Ptr< User > getMe() const
A simple method for testing your bot's authentication token.
Ptr< Message > sendVideoNote(const std::variant< std::int64_t, std::string > &chatId, const std::variant< cpr::File, std::string > &videoNote, std::int32_t messageThreadId=0, std::time_t duration=0, std::int32_t length=0, const std::optional< std::variant< cpr::File, std::string > > &thumbnail=std::nullopt, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send video notes. On success, the sent Message is returned. As of v....
std::vector< Ptr< GameHighScore > > getGameHighScores(std::int64_t userId, std::int64_t chatId=0, std::int32_t messageId=0, const std::string &inlineMessageId="") const
Use this method to get data for high score tables.
Ptr< Story > editStory(const std::string &businessConnectionId, std::int32_t storyId, const Ptr< InputStoryContent > &content, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), const std::vector< Ptr< StoryArea > > &areas=std::vector< Ptr< StoryArea > >()) const
Edits a story previously posted by the bot on behalf of a managed business account....
bool closeGeneralForumTopic(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to close an open 'General' topic in a forum supergroup chat. The bot must be an admin...
bool close() const
Use this method to close the bot instance before moving it from one local server to another....
Ptr< Message > sendInvoice(const std::variant< std::int64_t, std::string > &chatId, const std::string &title, const std::string &description, const std::string &payload, const std::string &currency, const std::vector< Ptr< LabeledPrice > > &prices, const std::string &providerToken="", std::int32_t messageThreadId=0, std::int32_t maxTipAmount=0, const std::vector< std::int32_t > &suggestedTipAmounts=std::vector< std::int32_t >(), const std::string &startParameter="", const std::string &providerData="", const std::string &photoUrl="", std::int32_t photoSize=0, std::int32_t photoWidth=0, std::int32_t photoHeight=0, bool needName=false, bool needPhoneNumber=false, bool needEmail=false, bool needShippingAddress=false, bool sendPhoneNumberToProvider=false, bool sendEmailToProvider=false, bool isFlexible=false, bool disableNotification=false, bool protectContent=false, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< IReplyMarkup > &replyMarkup=nullptr) const
Use this method to send invoices.
std::vector< Ptr< MessageId > > forwardMessages(const std::variant< std::int64_t, std::string > &chatId, const std::variant< std::int64_t, std::string > &fromChatId, const std::vector< std::int32_t > &messageIds, std::int32_t messageThreadId=0, bool disableNotification=false, bool protectContent=false, std::int32_t directMessagesTopicId=0) const
Use this method to forward multiple messages of any kind. If some of the specified messages can't be ...
bool setMyName(const std::string &name="", const std::string &languageCode="") const
Use this method to change the bot's name.
bool reopenForumTopic(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageThreadId) const
Use this method to reopen a closed topic in a forum supergroup chat. The bot must be an administrator...
Ptr< Message > editMessageChecklist(std::int64_t chatId, std::int32_t messageId, const Ptr< InputChecklist > &checklist, const std::string &businessConnectionId, const Ptr< IReplyMarkup > &replyMarkup=nullptr) const
Use this method to edit a checklist on behalf of a connected business account. On success,...
Ptr< Message > sendVoice(const std::variant< std::int64_t, std::string > &chatId, const std::variant< cpr::File, std::string > &voice, std::int32_t messageThreadId=0, const std::string &caption="", const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &captionEntities=std::vector< Ptr< MessageEntity > >(), std::time_t duration=0, bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send audio files as voice messages. On success, the sent Message is returned.
bool setWebhook(const std::string &url, const std::optional< cpr::File > &certificate=std::nullopt, const std::string &ipAddress="", std::int32_t maxConnections=40, const std::vector< std::string > &allowedUpdates=std::vector< std::string >(), bool dropPendingUpdates=false, const std::string &secretToken="") const
Use this method to specify a URL and receive incoming updates via an outgoing webhook....
cpr::ConnectTimeout getConnectTimeout() const noexcept
Get Api requests connection timeout.
Ptr< Message > sendMessage(const std::variant< std::int64_t, std::string > &chatId, const std::string &text, std::int32_t messageThreadId=0, const std::string &parseMode="", const std::vector< Ptr< MessageEntity > > &entities=std::vector< Ptr< MessageEntity > >(), bool disableNotification=false, bool protectContent=false, const Ptr< IReplyMarkup > &replyMarkup=nullptr, const std::string &businessConnectionId="", std::int32_t directMessagesTopicId=0, const Ptr< LinkPreviewOptions > &linkPreviewOptions=nullptr, bool allowPaidBroadcast=false, const std::string &messageEffectId="", const Ptr< SuggestedPostParameters > &suggestedPostParameters=nullptr, const Ptr< ReplyParameters > &replyParameters=nullptr) const
Use this method to send text messages. On success, the sent Message is returned.
bool setMessageReaction(const std::variant< std::int64_t, std::string > &chatId, std::int32_t messageId, const std::vector< Ptr< ReactionType > > &reaction=std::vector< Ptr< ReactionType > >(), bool isBig=false) const
Use this method to change the chosen reactions on a message. Service messages can't be reacted to....
bool deleteChatPhoto(const std::variant< std::int64_t, std::string > &chatId) const
Use this method to delete a chat photo. Photos can't be changed for private chats....
bool restrictChatMember(const std::variant< std::int64_t, std::string > &chatId, std::int64_t userId, const Ptr< ChatPermissions > &permissions, bool useIndependentChatPermissions=false, std::time_t untilDate=0) const
Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergrou...
Ptr< StarAmount > getMyStarBalance() const
A method to get the current Telegram Stars balance of the bot. Requires no parameters....
std::shared_ptr< T > Ptr
Definition Ptr.hpp:6
This object describes the types of gifts that can be gifted to a user or a chat. https://core....
This object represents a bot command. https://core.telegram.org/bots/api#botcommand.
Definition BotCommand.hpp:8
Base class of all bot commands scopes This object represents the scope to which bot commands are appl...
This object represents the bot's description. https://core.telegram.org/bots/api#botdescription.
This object represents the bot's name. https://core.telegram.org/bots/api#botname.
Definition BotName.hpp:7
This object represents the bot's short description. https://core.telegram.org/bots/api#botshortdescri...
Represents the rights of an administrator in a chat. https://core.telegram.org/bots/api#chatadministr...
This object represents a chat. https://core.telegram.org/bots/api#chat.
Definition Chat.hpp:7
The base class of all chat members objects. This object contains information about one member of a ch...
Describes actions that a non-administrator user is allowed to take in a chat. https://core....
This object represents a file ready to be downloaded.
Definition File.hpp:13
This object represents a forum topic. https://core.telegram.org/bots/api#forumtopic.
Definition ForumTopic.hpp:7
This object represents one row of the high scores table for a game. https://core.telegram....
This object represents a list of gifts. https://core.telegram.org/bots/api#gifts.
Definition Gifts.hpp:9
The interface of reply markup objects InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove ...
Base class of all inline query results This object represents one result of an inline query....
This object represents a button to be shown above inline query results. You must use exactly one of t...
Describes a checklist to create. https://core.telegram.org/bots/api#inputchecklist.
This object represents the content of a media message to be sent. It should be one of:
Base class describing paid media to send https://core.telegram.org/bots/api#inputpaidmedia.
This object contains information about one answer option in a poll to be sent. https://core....
Base class for profile photos to set https://core.telegram.org/bots/api#inputprofilephoto.
This object describes a sticker to be added to a sticker set. https://core.telegram....
Base class for story content to post https://core.telegram.org/bots/api#inputstorycontentphoto.
This object represents a portion of the price for goods or services. https://core....
This object describes the position on faces where a mask should be placed by default....
This object describes the bot's menu button in a private chat. It should be one of:
This object represents one special entity in a text message. For example, hashtags,...
This object represents a message. https://core.telegram.org/bots/api#message.
Definition Message.hpp:72
This object represents a unique message identifier. https://core.telegram.org/bots/api#messageid.
Definition MessageId.hpp:7
Contains the list of gifts received and owned by a user or a chat. https://core.telegram....
Definition OwnedGifts.hpp:9
This object represents an error in the Telegram Passport element which was submitted that should be r...
This object contains information about a poll. https://core.telegram.org/bots/api#poll.
Definition Poll.hpp:10
This object describes the type of a reaction. Currently, it can be one of:
Describes reply parameters for the message that is being sent. https://core.telegram....
Describes an inline message sent by a Web App on behalf of a user. https://core.telegram....
This object represents one shipping option. https://core.telegram.org/bots/api#shippingoption.
Describes an amount of Telegram Stars. https://core.telegram.org/bots/api#staramount.
Definition StarAmount.hpp:7
Contains a list of Telegram Star transactions. https://core.telegram.org/bots/api#startransactions.
This object represents a sticker. https://core.telegram.org/bots/api#sticker.
Definition Sticker.hpp:10
This object represents a sticker set. https://core.telegram.org/bots/api#stickerset.
Definition StickerSet.hpp:9
Describes a clickable area on a story media https://core.telegram.org/bots/api#storyarea.
Definition StoryArea.hpp:10
This object represents a story. . https://core.telegram.org/bots/api#story.
Definition Story.hpp:8
Contains parameters of a post that is being suggested by the bot. https://core.telegram....
This object represents an incoming update. At most one of the optional parameters can be present in a...
Definition Update.hpp:27
This object represents a list of boosts added to a chat by a user. https://core.telegram....
This object represents a Telegram user or bot. https://core.telegram.org/bots/api#user.
Definition User.hpp:7
This object represent a user's profile pictures. https://core.telegram.org/bots/api#userprofilephotos...
Describes the current status of a webhook. https://core.telegram.org/bots/api#webhookinfo.