khaperets / madelineproto
PHP implementation of telegram's MTProto protocol.
Fund package maintenance!
danog
Requires
- php-64bit: >=8.0
- ext-dom: *
- ext-fileinfo: *
- ext-filter: *
- ext-hash: *
- ext-json: *
- ext-mbstring: *
- ext-xml: *
- ext-zlib: *
- amphp/amp: ^2
- amphp/byte-stream: ^1
- amphp/dns: ^1
- amphp/file: ^2
- amphp/http-client: ^4
- amphp/http-client-cookies: ^1
- amphp/log: ^1.1
- amphp/mysql: ^2
- amphp/postgres: ^1.2
- amphp/redis: ^1.0
- amphp/socket: ^1
- amphp/websocket-client: ^1.0
- danog/dns-over-https: ^0.2
- danog/ipc: ^0.1
- danog/loop: ^0.1.0
- danog/magicalserializer: ^1.0
- danog/primemodule: ^1
- danog/tg-file-decoder: ^0.1
- erusev/parsedown: ^1.7
- league/uri: ^6
- phpseclib/phpseclib: ^3
- psr/http-factory: ^1.0
- psr/log: ^1
- symfony/polyfill-mbstring: *
- symfony/polyfill-php80: ^1.18
Requires (Dev)
- ext-ctype: *
- bamarni/composer-bin-plugin: ^1.4
- danog/phpdoc: ^0.1.7
- phabel/phabel: ^1
- phpdocumentor/reflection-docblock: ^5.2
- phpunit/phpunit: ^9
- roave/security-advisories: dev-latest
- symfony/yaml: ^6.0
Suggests
- ext-gmp: Install the gmp extension for faster crypto
- ext-libtgvoip: Install the php-libtgvoip extension to make phone calls (https://github.com/danog/php-libtgvoip)
- ext-openssl: Install the openssl extension for faster crypto
- ext-pdo: Install pdo extension to support database used as cache
Conflicts
- ext-pthreads: *
- krakjoe/pthreads-polyfill: *
- dev-stable
- v7.x-dev
- 7.0.71
- 7.0.70
- 7.0.69
- 7.0.68
- 7.0.67
- 7.0.66
- 7.0.65
- 7.0.64
- 7.0.63
- 7.0.62
- 7.0.61
- 7.0.60
- 7.0.59.9999
- 7.0.59.9998
- 7.0.59
- 7.0.58
- 7.0.57
- 7.0.56.9999
- 7.0.56.9998
- 7.0.56
- 7.0.55.9999
- 7.0.55.9998
- 7.0.55
- 7.0.54
- 7.0.53
- 7.0.52.9999
- 7.0.52.9998
- 7.0.52
- 7.0.51.9999
- 7.0.51.9998
- 7.0.51
- 7.0.50.9999
- 7.0.50.9998
- 7.0.50
- 7.0.49.9999
- 7.0.49.9998
- 7.0.49
- 7.0.48.9999
- 7.0.48.9998
- 7.0.48
- 7.0.47.9999
- 7.0.47.9998
- 7.0.47
- 7.0.46.9999
- 7.0.46.9998
- 7.0.46
- 7.0.45.9999
- 7.0.45.9998
- 7.0.45
- 7.0.44
- 7.0.43.9999
- 7.0.43.9998
- 7.0.43
- 7.0.42.9999
- 7.0.42.9998
- 7.0.42
- 7.0.41.9999
- 7.0.41.9998
- 7.0.41
- 7.0.40.9999
- 7.0.40.9998
- 7.0.40
- 7.0.39.9999
- 7.0.39.9998
- 7.0.39
- 7.0.38.9999
- 7.0.38.9998
- 7.0.38
- 7.0.37
- 7.0.36
- 7.0.35
- 7.0.34
- 7.0.33
- 7.0.32
- 7.0.31
- 7.0.30.9999
- 7.0.30.9998
- 7.0.30
- 7.0.29
- 7.0.28
- 7.0.27.9999
- 7.0.27.9998
- 7.0.27
- 7.0.26
- 7.0.25
- 7.0.24
- 7.0.23
- 7.0.22
- 7.0.21
- 7.0.20
- 7.0.19
- 7.0.18
- 7.0.17
- 7.0.16
- 7.0.15
- 7.0.14
- 7.0.13
- 7.0.12
- 7.0.11
- 7.0.10
- 7.0.9
- 7.0.8
- 7.0.7
- 7.0.6
- 7.0.5
- 7.0.4
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
- 5.1.34
- 5.1.33
- 5.1.32
- 5.1.31
- 5.1.30
- 5.1.29
- 5.1.28
- 5.1.27
- 5.1.26
- 5.1.25
- 5.1.24
- 5.1.23
- 5.1.22
- 5.1.21
- 5.1.20
- 5.1.19
- 5.1.18
- 5.1.17
- 5.1.15
- 5.1.14
- 5.1.13
- 5.1.12
- 5.1.11
- 5.1.10
- 5.1.9
- 5.1.8
- 5.1.7
- 5.1.6
- 5.1.5
- 5.1.4
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.58
- 5.0.57
- 5.0.56
- 5.0.55
- 5.0.54
- 5.0.53
- 5.0.52
- 5.0.51
- 5.0.50
- 5.0.49
- 5.0.48
- 5.0.47
- 5.0.46
- 5.0.45
- 5.0.44
- 5.0.43
- 5.0.42
- 5.0.41
- 5.0.40
- 5.0.39
- 5.0.38
- 5.0.36
- 5.0.35
- 5.0.34
- 5.0.33
- 5.0.32
- 5.0.31
- 5.0.30
- 5.0.29
- 5.0.28
- 5.0.27
- 5.0.26
- 5.0.25
- 5.0.24
- 5.0.23
- 5.0.22
- 5.0.21
- 5.0.20
- 5.0.19
- 5.0.18
- 5.0.17
- 5.0.16
- 5.0.15
- 5.0.14
- 5.0.13
- 5.0.12
- 5.0.11
- 5.0.10
- 5.0.9
- 5.0.8
- 5.0.7
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.2.25
- 4.2.24
- 4.2.23
- 4.2.22
- 4.2.21
- 4.2.20
- 4.2.19
- 4.2.18
- 4.2.17
- 4.2.16
- 4.2.15
- 4.2.14
- 4.2.13
- 4.2.12
- 4.2.11
- 4.2.10
- 4.2.9
- 4.2.8
- 4.2.7
- 4.2.6
- 4.2.5
- 4.2.4
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0
- 3.1.1
- 3.1
- 3.0
- 2.0
- 1.4
- 1.3.1
- 1.3
- 1.2
- 1.0.1
- 1.0
- 1.0-rc
- 1.0-beta.1
- dev-master
- dev-ipc
- dev-settings
- dev-deprecated
- dev-voip
This package is auto-updated.
Last update: 2024-12-22 20:41:15 UTC
README
Created by Daniil Gentili
Do join the official channel, @MadelineProto and the support groups!
Now with Telegram TON blockchain integration!
What's this?
This library can be used to easily interact with Telegram without the bot API, just like the official apps.
It can login with a phone number (MTProto API), or with a bot token (MTProto API, no bot API involved!).
Getting started (now fully async!)
<?php if (!file_exists('madeline.php')) { copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php'); } include 'madeline.php'; $MadelineProto = new \danog\MadelineProto\API('session.madeline'); $MadelineProto->start(); $me = $MadelineProto->getSelf(); $MadelineProto->logger($me); if (!$me['bot']) { $MadelineProto->messages->sendMessage(['peer' => '@danogentili', 'message' => "Hi!\nThanks for creating MadelineProto! <3"]); $MadelineProto->channels->joinChannel(['channel' => '@MadelineProto']); try { $MadelineProto->messages->importChatInvite(['hash' => 'https://t.me/joinchat/Bgrajz6K-aJKu0IpGsLpBg']); } catch (\danog\MadelineProto\RPCErrorException $e) { $MadelineProto->logger($e); } $MadelineProto->messages->sendMessage(['peer' => 'https://t.me/joinchat/Bgrajz6K-aJKu0IpGsLpBg', 'message' => 'Testing MadelineProto!']); } $MadelineProto->echo('OK, done!');
Try this code now! or run this code in a browser or in a console.
Tip: if you receive an error (or nothing), send us the error message and the MadelineProto.log
file that was created in the same directory (if running from a browser).
Examples
You can find examples for nearly every MadelineProto function in
- magnaluna webradio - Multifeatured Telegram VoIP webradio
downloadRenameBot.php
- download files by URL and rename Telegram files using this async parallelized bot!bot.php
- examples for sending normal messages, downloading any mediasecret_bot.php
- secret chat botpipesbot.php
- examples for creating inline bots and using other inline bots via a userbot
Documentation
- Creating a client
- Login
- Features
- Requirements
- Installation
- Handling updates (new messages)
- Database
- Settings
- \danog\MadelineProto\Settings\AppInfo: App information.
- \danog\MadelineProto\Settings\Auth: Cryptography settings.
- \danog\MadelineProto\Settings\Connection: Connection settings.
- \danog\MadelineProto\Settings\Files: File management settings.
- \danog\MadelineProto\Settings\Logger: Logger settings.
- \danog\MadelineProto\Settings\Peer: Peer database settings.
- \danog\MadelineProto\Settings\Pwr: PWRTelegram settings.
- \danog\MadelineProto\Settings\RPC: RPC settings.
- \danog\MadelineProto\Settings\SecretChats: Secret chat settings.
- \danog\MadelineProto\Settings\Serialization: Serialization settings.
- \danog\MadelineProto\Settings\TLSchema: TL schema settings.
- \danog\MadelineProto\Settings\Templates: Web and CLI template settings for login.
- \danog\MadelineProto\Settings\VoIP: VoIP settings.
- \danog\MadelineProto\Settings\Database\Memory: Memory backend settings.
- \danog\MadelineProto\Settings\Database\Mysql: MySQL backend settings.
- \danog\MadelineProto\Settings\Database\Postgres: Postgres backend settings.
- \danog\MadelineProto\Settings\Database\Redis: Redis backend settings.
- Getting info about the current user
- Exceptions
- Avoiding FLOOD_WAITs
- Logging
- Telegram VoIP phone calls
- Uploading and downloading files
- Getting info about chats
- Getting all chats (dialogs)
- Inline buttons
- Secret chats
- Lua binding
- Using a proxy
- Async
- Using methods
- FULL API Documentation with descriptions
- Logout
- Login
- Change 2FA password
- Get all chats, broadcast a message to all chats
- Get the full participant list of a channel/group/supergroup
- Get full info about a user/chat/supergroup/channel
- Get info about a user/chat/supergroup/channel
- Get info about the currently logged-in user
- Upload or download files up to 2 GB
- Make a phone call and play a song
- Create a secret chat bot
- Accept QR code login token, logging in the app that generated it: auth.acceptLoginToken
- Accept incoming call: phone.acceptCall
- Accept the new terms of service: help.acceptTermsOfService
- Add GIF to saved gifs list: messages.saveGif
- Add a sticker to a stickerset, bots only. The sticker set must have been created by the bot: stickers.addStickerToSet
- Add an existing telegram user as contact: contacts.addContact
- Add/remove sticker from recent stickers list: messages.saveRecentSticker
- Adds a user to a chat and sends a service message on it: messages.addChatUser
- Adds the user to the blacklist: contacts.block
- Answer an inline query, for bots only: messages.setInlineBotResults
- Answers a custom query; for bots only: bots.answerWebhookJSONQuery
- Apply changes to multiple stickersets: messages.toggleStickerSets
- Associate a group to a channel as discussion group for that channel: channels.setDiscussionGroup
- Associate a stickerset to the supergroup: channels.setStickers
- Ban/unban/kick a user in a supergroup/channel: channels.editBanned
- Binds a temporary authorization key temp_auth_key_id to the permanent authorization key perm_auth_key_id. Each permanent key may only be bound to one temporary key at a time, binding a new temporary key overwrites the previous one: auth.bindTempAuthKey
- Cancel the code that was sent to verify an email to use as 2FA recovery method: account.cancelPasswordEmail
- Cancel the login verification code: auth.cancelCode
- Cancels a request for creation and/or delete info on secret chat: messages.discardEncryption
- Chanages chat name and sends a service message on it: messages.editChatTitle
- Change media autodownload settings: account.saveAutoDownloadSettings
- Change privacy settings of current account: account.setPrivacy
- Change the phone number of the current account: account.changePhone
- Change the photo of a channel/supergroup: channels.editPhoto
- Change the username of a supergroup/channel: channels.updateUsername
- Changes chat photo and sends a service message on it: messages.editChatPhoto
- Changes the absolute position of a sticker in the set to which it belongs; for bots only. The sticker set must have been created by the bot: stickers.changeStickerPosition
- Changes username for the current user: account.updateUsername
- Check if a username is free and can be assigned to a channel/supergroup: channels.checkUsername
- Check the validity of a chat invite link and get basic info about it: messages.checkChatInvite
- Clear all drafts: messages.clearAllDrafts
- Clear recent stickers: messages.clearRecentStickers
- Clear saved payment information: payments.clearSavedInfo
- Confirm a phone number to cancel account deletion, for more info click here »: account.confirmPhone
- Confirms creation of a secret chat: messages.acceptEncryption
- Confirms receipt of messages by a client, cancels PUSH-notification sending: messages.receivedMessages
- Confirms receipt of messages in a secret chat by client, cancels push notifications: messages.receivedQueue
- Create a supergroup/channel: channels.createChannel
- Create a stickerset, bots only: stickers.createStickerSet
- Create a theme: account.createTheme
- Create and upload a new wallpaper: account.uploadWallPaper
- Creates a new chat: messages.createChat
- Delete a channel/supergroup: channels.deleteChannel
- Delete a peer folder: folders.deleteFolder
- Delete all temporary authorization keys except for the ones specified: auth.dropTempAuthKeys
- Delete contacts by phone number: contacts.deleteByPhones
- Delete installed wallpapers: account.resetWallPapers
- Delete messages in a channel/supergroup: channels.deleteMessages
- Delete saved contacts: contacts.resetSaved
- Delete scheduled messages: messages.deleteScheduledMessages
- Delete stored Telegram Passport documents, for more info see the passport docs »: account.deleteSecureValue
- Delete the history of a supergroup: channels.deleteHistory
- Delete the user's account from the telegram servers. Can be used, for example, to delete the account of a user that provided the login code, but forgot the 2FA password and no recovery method is configured: account.deleteAccount
- Deletes a device by its token, stops sending PUSH-notifications to it: account.unregisterDevice
- Deletes a user from a chat and sends a service message on it: messages.deleteChatUser
- Deletes communication history: messages.deleteHistory
- Deletes messages by their identifiers: messages.deleteMessages
- Deletes profile photos: photos.deletePhotos
- Deletes several contacts from the list: contacts.deleteContacts
- Deletes the user from the blacklist: contacts.unblock
- Dismiss a suggestion: help.dismissSuggestion
- Download a CDN file: upload.getCdnFile
- Edit an inline bot message: messages.editInlineBotMessage
- Edit location of geogroup: channels.editLocation
- Edit message: messages.editMessage
- Edit peers in peer folder: folders.editPeerFolders
- Edit the default banned rights of a channel/supergroup/group: messages.editChatDefaultBannedRights
- Edit the description of a group/supergroup/channel: messages.editChatAbout
- Edit the name of a channel/supergroup: channels.editTitle
- Edits notification settings from a given user/group, from all users/all groups: account.updateNotifySettings
- Enable/disable top peers: contacts.toggleTopPeers
- Enable/disable message signatures in channels: channels.toggleSignatures
- Export an invite link for a chat: messages.exportChatInvite
- Find out if a media message's caption can be edited: messages.getMessageEditData
- Finish account takeout session: account.finishTakeoutSession
- Forwards messages by their IDs: messages.forwardMessages
- Generate a login token, for login via QR code. : auth.exportLoginToken
- Get MTProxy/Public Service Announcement information: help.getPromoData
- Get SHA256 hashes for verifying downloaded CDN files: upload.getCdnFileHashes
- Get SHA256 hashes for verifying downloaded files: upload.getFileHashes
- Get channel statistics: stats.getBroadcastStats
- Get channel/supergroup messages: channels.getMessages
- Get channels/supergroups/geogroups we're admin in. Usually called when the user exceeds the limit for owned public channels/supergroups/geogroups, and the user is given the choice to remove one of his channels/supergroups/geogroups: channels.getAdminedPublicChannels
- Get discussion message from the associated discussion group of a channel to show it on top of the comment section, without actually joining the group: messages.getDiscussionMessage
- Get folders: messages.getDialogFilters
- Get instant view page: messages.getWebPage
- Get message statistics: stats.getMessageStats
- Get passport configuration: help.getPassportConfig
- Get suggested folders: messages.getSuggestedDialogFilters
- Get supergroup statistics: stats.getMegagroupStats
- Get a document by its SHA256 hash, mainly used for gifs: messages.getDocumentByHash
- Get a list of channels/supergroups we left: channels.getLeftChannels
- Get a payment form: payments.getPaymentForm
- Get all archived stickers: messages.getArchivedStickers
- Get all chats, channels and supergroups: messages.getAllChats
- Get all contacts: contacts.getSaved
- Get all groups that can be used as discussion groups: channels.getGroupsForDiscussion
- Get all installed stickers: messages.getAllStickers
- Get all saved Telegram Passport documents, for more info see the passport docs »: account.getAllSecureValues
- Get and increase the view counter of a message sent or forwarded from a channel: messages.getMessagesViews
- Get app-specific configuration, see client configuration for more info on the result: help.getAppConfig
- Get changed emoji keywords: messages.getEmojiKeywordsDifference
- Get changelog of current app. : help.getAppChangelog
- Get chats in common with a user: messages.getCommonChats
- Get configuration for CDN file downloads: help.getCdnConfig
- Get contact by telegram IDs: contacts.getContactIDs
- Get contacts near you: contacts.getLocated
- Get count of online users in a chat: messages.getOnlines
- Get days to live of account: account.getAccountTTL
- Get dialog info of specified peers: messages.getPeerDialogs
- Get dialogs manually marked as unread: messages.getDialogUnreadMarks
- Get faved stickers: messages.getFavedStickers
- Get featured stickers: messages.getFeaturedStickers
- Get full info about a channel: channels.getFullChannel
- Get global privacy settings: account.getGlobalPrivacySettings
- Get highscores of a game sent using an inline bot: messages.getInlineGameHighScores
- Get highscores of a game: messages.getGameHighScores
- Get inactive channels and supergroups: channels.getInactiveChannels
- Get info about channels/supergroups: channels.getChannels
- Get info about a channel/supergroup participant: channels.getParticipant
- Get info about a t.me link: help.getDeepLinkInfo
- Get info about a certain wallpaper: account.getWallPaper
- Get info about a credit card: payments.getBankCardData
- Get info about a stickerset: messages.getStickerSet
- Get info about an emoji keyword localization: messages.getEmojiKeywordsLanguages
- Get info about multiple wallpapers: account.getMultiWallPapers
- Get information about a language in a localization pack: langpack.getLanguage
- Get information about all languages in a localization pack: langpack.getLanguages
- Get installed mask stickers: messages.getMaskStickers
- Get installed themes: account.getThemes
- Get link and embed info of a message in a channel/supergroup: channels.exportMessageLink
- Get live location history of a certain user: messages.getRecentLocations
- Get localization pack strings: langpack.getLangPack
- Get localized emoji keywords: messages.getEmojiKeywords
- Get localized name of the telegram support user: help.getSupportName
- Get logged-in sessions: account.getAuthorizations
- Get media autodownload settings: account.getAutoDownloadSettings
- Get message ranges for saving the user's chat history: messages.getSplitRanges
- Get messages in a reply thread: messages.getReplies
- Get more info about a Seamless Telegram Login authorization request, for more info click here »: messages.requestUrlAuth
- Get most used peers: contacts.getTopPeers
- Get name, ISO code, localized name and phone codes/patterns of all available countries: help.getCountriesList
- Get new updates: updates.getDifference
- Get new strings in languagepack: langpack.getDifference
- Get payment receipt: payments.getPaymentReceipt
- Get peer settings: messages.getPeerSettings
- Get phone call configuration to be passed to libtgvoip's shared config: phone.getCallConfig
- Get pinned dialogs: messages.getPinnedDialogs
- Get poll results for non-anonymous polls: messages.getPollVotes
- Get poll results: messages.getPollResults
- Get preview of webpage: messages.getWebPagePreview
- Get privacy settings of current account: account.getPrivacy
- Get private info associated to the password info (recovery email, telegram passport info & so on): account.getPasswordSettings
- Get recent stickers: messages.getRecentStickers
- Get recently used t.me links: help.getRecentMeUrls
- Get saved GIFs: messages.getSavedGifs
- Get saved Telegram Passport document, for more info see the passport docs »: account.getSecureValue
- Get saved payment information: payments.getSavedInfo
- Get scheduled messages: messages.getScheduledHistory
- Get scheduled messages: messages.getScheduledMessages
- Get sensitive content settings: account.getContentSettings
- Get stickers attached to a photo or video: messages.getAttachedStickers
- Get stickers by emoji: messages.getStickers
- Get strings from a language pack: langpack.getStrings
- Get temporary payment password: account.getTmpPassword
- Get the admin log of a channel/supergroup: channels.getAdminLog
- Get the number of results that would be found by a messages.search call with the same parameters: messages.getSearchCounters
- Get the participants of a supergroup/channel: channels.getParticipants
- Get theme information: account.getTheme
- Get unread messages where we were mentioned: messages.getUnreadMentions
- Get web login widget authorizations: account.getWebAuthorizations
- Gets back found messages: messages.search
- Gets back the conversation history with one interlocutor / within a chat: messages.getHistory
- Gets current notification settings for a given user/group, from all users/all groups: account.getNotifySettings
- Hide MTProxy/Public Service Announcement information: help.hidePromoData
- Hide/unhide message history for new channel/supergroup users: channels.togglePreHistoryHidden
- If the peer settings of a new user allow us to add him as contact, add that user as contact: contacts.acceptContact
- If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the bot will receive an updateBotShippingQuery update. Use this method to reply to shipping queries: messages.setBotShippingResults
- Import a chat invite and join a private chat/supergroup/channel: messages.importChatInvite
- Imports contacts: saves a full list on the server, adds already registered contacts to the contact list, returns added contacts and their info: contacts.importContacts
- Informs the server about the number of pending bot updates if they haven't been processed for a long time; for bots only: help.setBotUpdatesStatus
- Initialize connection: initConnection
- Install a stickerset: messages.installStickerSet
- Install a theme: account.installTheme
- Install wallpaper: account.installWallPaper
- Install/uninstall wallpaper: account.saveWallPaper
- Installs a previously uploaded photo as a profile photo: photos.updateProfilePhoto
- Internal use: help.editUserInfo
- Internal use: help.getUserInfo
- Intialize account takeout session: account.initTakeoutSession
- Invite users to a channel/supergroup: channels.inviteToChannel
- Invoke a method within a takeout session: invokeWithTakeout
- Invoke a request without subscribing the used connection for updates (this is enabled by default for file queries): invokeWithoutUpdates
- Invoke the specified query using the specified API layer: invokeWithLayer
- Invoke with the given message range: invokeWithMessagesRange
- Invokes a query after a successfull completion of previous queries: invokeAfterMsgs
- Invokes a query after successfull completion of one of the previous queries: invokeAfterMsg
- Join a channel/supergroup: channels.joinChannel
- Leave a channel/supergroup: channels.leaveChannel
- Load channel statistics graph asynchronously: stats.loadAsyncGraph
- Log out an active authorized session by its hash: account.resetAuthorization
- Log out an active web telegram login session: account.resetWebAuthorization
- Login as a bot: auth.importBotAuthorization
- Login using a redirected login token, generated in case of DC mismatch during QR code login: auth.importLoginToken
- Logs in a user using a key transmitted from his native data-centre: auth.importAuthorization
- Logs out the user: auth.logOut
- Look for updates of telegram's terms of service: help.getTermsOfServiceUpdate
- Make a user admin in a legacy group: messages.editChatAdmin
- Manually mark dialog as unread: messages.markDialogUnread
- Mark channel/supergroup history as read: channels.readHistory
- Mark channel/supergroup message contents as read: channels.readMessageContents
- Mark a thread as read: messages.readDiscussion
- Mark a sticker as favorite: messages.faveSticker
- Mark mentions as read: messages.readMentions
- Mark new featured stickers as read: messages.readFeaturedStickers
- Marks message history as read: messages.readHistory
- Marks message history within a secret chat as read: messages.readEncryptedHistory
- Method for fetching previously featured stickers: messages.getOldFeaturedStickers
- Modify the admin rights of a user in a supergroup/channel: channels.editAdmin
- Notifies the sender about the recipient having listened a voice message or watched a video: messages.readMessageContents
- Notify the other user in a private chat that a screenshot of the chat was taken: messages.sendScreenshotNotification
- Notify the user that the sent passport data contains some errors The user will not be able to re-submit their Passport data to you until the errors are fixed (the contents of the field for which you returned the error must change): users.setSecureValueErrors
- Obtain configuration for two-factor authorization with password: account.getPassword
- Obtains a list of messages, indicating to which other public channels was a channel message forwarded. : stats.getMessagePublicForwards
- Once the user has confirmed their payment and shipping details, the bot receives an updateBotPrecheckoutQuery update. : messages.setBotPrecheckoutResults
- Optional: notify the server that the user is currently busy in a call: this will automatically refuse all incoming phone calls until the current phone call is ended: phone.receivedCall
- Pin a message: messages.updatePinnedMessage
- Pin/unpin a dialog: messages.toggleDialogPin
- Press an inline callback button and get a callback answer from the bot: messages.getBotCallbackAnswer
- Query an inline bot: messages.getInlineBotResults
- Rate a call: phone.setCallRating
- Refuse or end running call: phone.discardCall
- Register device to receive PUSH notifications: account.registerDevice
- Registers a validated phone number in the system: auth.signUp
- Remove a sticker from the set where it belongs, bots only. The sticker set must have been created by the bot: stickers.removeStickerFromSet
- Reorder folders: messages.updateDialogFiltersOrder
- Reorder installed stickersets: messages.reorderStickerSets
- Reorder pinned dialogs: messages.reorderPinnedDialogs
- Report a message in a chat for violation of telegram's Terms of Service: messages.report
- Report a new incoming chat for spam, if the peer settings of the chat allow us to do that: messages.reportSpam
- Report a peer for violation of telegram's Terms of Service: account.reportPeer
- Report a secret chat for spam: messages.reportEncryptedSpam
- Reports some messages from a user in a supergroup as spam; requires administrator rights in the supergroup: channels.reportSpam
- Request a reupload of a certain file to a CDN DC: upload.reuploadCdnFile
- Request recovery code of a 2FA password, only for accounts with a recovery email configured: auth.requestPasswordRecovery
- Resend the code to verify an email to use as 2FA recovery method: account.resendPasswordEmail
- Resend the login code via another medium, the phone code type is determined by the return value of the previous auth.sendCode/auth.resendCode: see login for more info: auth.resendCode
- Reset rating of top peer: contacts.resetTopPeerRating
- Reset all active web telegram login sessions: account.resetWebAuthorizations
- Reset the 2FA password using the recovery code sent using auth.requestPasswordRecovery: auth.recoverPassword
- Resets all notification settings from users and groups: account.resetNotifySettings
- Resolve a @username to get peer info: contacts.resolveUsername
- Returns a Telegram Passport authorization form for sharing data with a service: account.getAuthorizationForm
- Returns a current state of updates: updates.getState
- Returns a list of available wallpapers: account.getWallPapers
- Returns an HTTP URL which can be used to automatically log in into translation platform and suggest new emoji replacements. The URL will be valid for 30 seconds after generation: messages.getEmojiURL
- Returns basic user info according to their identifiers: users.getUsers
- Returns chat basic info on their IDs: messages.getChats
- Returns configuration parameters for Diffie-Hellman key generation. Can also return a random sequence of bytes of required length: messages.getDhConfig
- Returns content of a whole file or its part: upload.getFile
- Returns content of an HTTP file or a part, by proxying the request through telegram: upload.getWebFile
- Returns current configuration, including data center configuration: help.getConfig
- Returns data for copying authorization to another data-centre: auth.exportAuthorization
- Returns extended user info by ID: users.getFullUser
- Returns full chat info according to its ID: messages.getFullChat
- Returns info on data centre nearest to the user: help.getNearestDc
- Returns information on update availability for the current application: help.getAppUpdate
- Returns list of chats with non-default notification settings: account.getNotifyExceptions
- Returns localized text of a text message with an invitation: help.getInviteText
- Returns the current user dialog list: messages.getDialogs
- Returns the current user's contact list: contacts.getContacts
- Returns the difference between the current state of updates of a certain channel and transmitted: updates.getChannelDifference
- Returns the list of blocked users: contacts.getBlocked
- Returns the list of contact statuses: contacts.getStatuses
- Returns the list of messages by their IDs: messages.getMessages
- Returns the list of user photos: photos.getUserPhotos
- Returns the support user for the 'ask a question' feature: help.getSupport
- Returns users found by username substring: contacts.search
- Save a message draft associated to a chat: messages.saveDraft
- Save a theme: account.saveTheme
- Save get all message drafts: messages.getAllDrafts
- Saves a part of a large file (over 10Mb in size) to be later passed to one of the methods: upload.saveBigFilePart
- Saves a part of file for futher sending to one of the methods: upload.saveFilePart
- Saves logs of application on the server: help.saveAppLog
- Search for messages and peers globally: messages.searchGlobal
- Search for stickersets: messages.searchStickerSets
- Securely save Telegram Passport document, for more info see the passport docs »: account.saveSecureValue
- Send VoIP signaling data: phone.sendSignalingData
- Send a media: messages.sendMedia
- Send a result obtained using messages.getInlineBotResults: messages.sendInlineBotResult
- Send an album or grouped media: messages.sendMultiMedia
- Send compiled payment form: payments.sendPaymentForm
- Send confirmation code to cancel account deletion, for more info click here »: account.sendConfirmPhoneCode
- Send phone call debug data to server: phone.saveCallDebug
- Send scheduled messages right away: messages.sendScheduledMessages
- Send the verification code for login: auth.sendCode
- Send the verification email code for telegram passport: account.sendVerifyEmailCode
- Send the verification phone code for telegram passport: account.sendVerifyPhoneCode
- Send typing event by the current user to a secret chat: messages.setEncryptedTyping
- Sends a Telegram Passport authorization form, effectively sharing data with the service: account.acceptAuthorization
- Sends a current user typing event (see SendMessageAction for all event types) to a conversation partner or group: messages.setTyping
- Sends a custom request; for bots only: bots.sendCustomRequest
- Sends a message to a chat: messages.sendMessage
- Sends a message with a file attachment to a secret chat: messages.sendEncryptedFile
- Sends a request to start a secret chat to the user: messages.requestEncryption
- Sends a service message to a secret chat: messages.sendEncryptedService
- Sends a text message to a secret chat: messages.sendEncrypted
- Set a new 2FA password: account.updatePasswordSettings
- Set account self-destruction period: account.setAccountTTL
- Set bot command list: bots.setBotCommands
- Set global privacy settings: account.setGlobalPrivacySettings
- Set sensitive content settings (for viewing or hiding NSFW content): account.setContentSettings
- Set stickerset thumbnail: stickers.setStickerSetThumb
- Set the callback answer to a user button press (bots only): messages.setBotCallbackAnswer
- Should be called after the user hides the report spam/add as contact bar of a new chat, effectively prevents the user from executing the actions specified in the peer's settings: messages.hidePeerSettingsBar
- Signs in a user with a validated phone number: auth.signIn
- Start a conversation with a bot using a deep linking parameter: messages.startBot
- Start a telegram phone call: phone.requestCall
- Stop getting notifications about thread replies of a certain user in @replies: contacts.blockFromReplies
- Submit requested order information for validation: payments.validateRequestedInfo
- Terminates all user's authorized sessions except for the current one: auth.resetAuthorizations
- Toggle contact sign up notifications: account.setContactSignUpNotification
- Toggle supergroup slow mode: if enabled, users will only be able to send one message every seconds seconds: channels.toggleSlowMode
- Transfer channel ownership: channels.editCreator
- Try logging to an account protected by a 2FA password: auth.checkPassword
- Turn a legacy group into a supergroup: messages.migrateChat
- Uninstall a stickerset: messages.uninstallStickerSet
- Update folder: messages.updateDialogFilter
- Update theme: account.updateTheme
- Updates current user profile photo: photos.uploadProfilePhoto
- Updates online user status: account.updateStatus
- Updates user profile: account.updateProfile
- Upload a file and associate it to a chat (without actually sending it to the chat): messages.uploadMedia
- Upload encrypted file and associate it to a secret chat: messages.uploadEncryptedFile
- Upload theme: account.uploadTheme
- Use this method to set the score of the specified user in a game sent as a normal message (bots only): messages.setGameScore
- Use this method to set the score of the specified user in a game sent as an inline message (bots only): messages.setInlineGameScore
- Use this to accept a Seamless Telegram Login authorization request, for more info click here »: messages.acceptUrlAuth
- Validates a username and checks availability: account.checkUsername
- Verify a new phone number to associate to the current account: account.sendChangePhoneCode
- Verify a phone number for telegram passport: account.verifyPhone
- Verify an email address for telegram passport: account.verifyEmail
- Verify an email to use as 2FA recovery method: account.confirmPasswordEmail
- Vote in a poll: messages.sendVote
- When client-side passcode lock feature is enabled, will not show message texts in incoming PUSH notifications: account.updateDeviceLocked
- Whether the user will receive notifications when contacts sign up: account.getContactSignUpNotification
- Complete phone call E2E encryption key exchange »: phone.confirmCall
- Unpin all pinned messages: messages.unpinAllMessages
- Peers
- Files
- Secret chats
- Entities (Markdown & HTML)
- reply_markup (keyboards & inline keyboards)
- bot API objects
- No result
- Queues
- Multiple method calls
- FULL API Documentation with descriptions
- Contributing
- Web templates for
$MadelineProto->start()