[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-8512":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":16,"starSnapshotCount":16,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},8512,"MadelineProto","danog\u002FMadelineProto","danog","Async PHP client API for the telegram MTProto protocol","https:\u002F\u002Fdocs.madelineproto.xyz",null,"PHP",3443,859,186,64,0,4,28,30.8,"GNU Affero General Public License v3.0",false,"v8",true,[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"amphp","async","bot","calls","easy","hacktoberfest","inline-bots","madelineproto","mtproto","mtproto-api","php","proxy","secret-chats","stickers","tdlib","tdlib-php","telegram","telegram-api","voip","2026-06-12 02:01:54","# MadelineProto, a PHP MTProto telegram client\n\nCreated by \u003Ca href=\"https:\u002F\u002Fdaniil.it\" target=\"_blank\" rel=\"noopener\">Daniil Gentili\u003C\u002Fa>\n\n`#StandWithUkraine 🇺🇦`\n\nDo join the official channel, [@MadelineProto](https:\u002F\u002Ft.me\u002FMadelineProto) and the [support groups](https:\u002F\u002Ft.me\u002Fpwrtelegramgroup)!\n\n\u003Ca href=\"https:\u002F\u002Ftelegram.org\u002Fapps\" target=\"_blank\" rel=\"noopener\">Approved by Telegram!\u003C\u002Fa>\n\n## What's this?\n\nThis library can be used to easily interact with Telegram **without** the bot API, just like the official apps.\n\nIt can login with a phone number (MTProto API), or with a bot token (MTProto API, **no bot API involved!**).\n\n[It is now fully async](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html)!\n\n## Getting started ([now fully async!](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html))\n\n```php\n\u003C?php\n\n\u002F\u002F PHP 8.2+ is required.\n\nif (!file_exists('madeline.php')) {\n    copy('https:\u002F\u002Fphar.madelineproto.xyz\u002Fmadeline.php', 'madeline.php');\n}\ninclude 'madeline.php';\n\n$MadelineProto = new \\danog\\MadelineProto\\API('session.madeline');\n$MadelineProto->start();\n\n$me = $MadelineProto->getSelf();\n\n$MadelineProto->logger($me);\n\nif (!$me['bot']) {\n    $MadelineProto->messages->sendMessage(peer: '@stickeroptimizerbot', message: \"\u002Fstart\");\n\n    $MadelineProto->channels->joinChannel(channel: '@MadelineProto');\n\n    try {\n        $MadelineProto->messages->importChatInvite(hash: 'https:\u002F\u002Ft.me\u002F+Por5orOjwgccnt2w');\n    } catch (\\danog\\MadelineProto\\RPCErrorException $e) {\n        $MadelineProto->logger($e);\n    }\n}\n$MadelineProto->echo('OK, done!');\n```\n\nTry running this code in a browser or in a console!  \n\n\nTip: if you receive an error (or nothing), [send us](https:\u002F\u002Ft.me\u002Fpwrtelegramgroup) the error message and the `MadelineProto.log` file that was created in the same directory (if running from a browser).  \n\n## Made with MadelineProto\n\nThe following open source projects were created using MadelineProto: you can directly install them, or explore the source code as direct examples on how to use MadelineProto's many features!\n\n* [magnaluna webradio](https:\u002F\u002Fmagna.madelineproto.xyz) - Multifeatured Telegram VoIP webradio\n* [`simpleBot.php`](https:\u002F\u002Fgithub.com\u002Fdanog\u002FMadelineProto\u002Fblob\u002Fv8\u002Fexamples\u002FsimpleBot.php) - Extremely basic example\n* [`tgstories_dl_bot.php`](https:\u002F\u002Fgithub.com\u002Fdanog\u002FMadelineProto\u002Fblob\u002Fv8\u002Fexamples\u002Ftgstories_dl_bot.php) - Source code of [@tgstories_dl_bot](https:\u002F\u002Ft.me\u002Ftgstories_dl_bot) - Bot to download any Telegram Story!\n* [`downloadRenameBot.php`](https:\u002F\u002Fgithub.com\u002Fdanog\u002FdownloadRenameBot\u002Fblob\u002Fmain\u002Fbot.php) - Download files by URL and rename Telegram files using this async parallelized bot!\n* [`secret_bot.php`](https:\u002F\u002Fgithub.com\u002Fdanog\u002FMadelineProto\u002Fblob\u002Fv8\u002Fexamples\u002Fsecret_bot.php) - Secret chat bot!\n* [`pipesbot.php`](https:\u002F\u002Fgithub.com\u002Fdanog\u002Fpipesbot) - Creating inline bots and using other inline bots via a userbot!\n* [`bot.php`](https:\u002F\u002Fgithub.com\u002Fdanog\u002FMadelineProto\u002Fblob\u002Fv8\u002Fexamples\u002Fbot.php) - Examples for how to use filters, updates, get download links for any file, Telegram Stories and much more!\n\nWant to add your own open-source project to this list? [Click here!](https:\u002F\u002Fdocs.madelineproto.xyz\u002FFOSS.html)\n\nSome of MadelineProto's core components are also available as separate, standalone libraries:\n\n- [danog\u002Fasync-orm](https:\u002F\u002Fgithub.com\u002Fdanog\u002FAsyncOrm) - Async ORM based on AMPHP v3 and fibers. \n- [danog\u002Ftelegram-entities](https:\u002F\u002Fgithub.com\u002Fdanog\u002Ftelegram-entities) - A library to work with Telegram UTF-16 styled text entities. \n- [danog\u002Ftg-file-decoder](https:\u002F\u002Fgithub.com\u002Fdanog\u002Ftg-file-decoder) - A library to work with Telegram bot API file IDs.\n- [danog\u002Ftg-dialog-id](https:\u002F\u002Fgithub.com\u002Fdanog\u002Ftg-dialog-id) - A library to work with Telegram bot API dialog IDs. \n- [danog\u002Floop](https:\u002F\u002Fgithub.com\u002Fdanog\u002Floop) - Loop\u002Factor model abstraction for AMPHP.\n- [danog\u002Fbetter-prometheus](https:\u002F\u002Fgithub.com\u002Fdanog\u002Fbetter-prometheus) - A better Prometheus library for PHP applications.\n- [danog\u002Fipc](https:\u002F\u002Fgithub.com\u002Fdanog\u002Fipc) - Async IPC component for AMPHP.\n- [danog\u002Fdns-over-https](https:\u002F\u002Fgithub.com\u002Fdanog\u002Fdns-over-https) - Async DNS-over-HTTPS resolution for AMPHP. \n\n## Documentation\n\n* [Creating a client](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCREATING_A_CLIENT.html) - This page explains how to create a MadelineProto instance.\n* [Login](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGIN.html) - There are many ways you can login with MadelineProto.\n  * [Getting permission to use the telegram API](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGIN.html#getting-permission-to-use-the-telegram-api)\n  * [Automatic](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGIN.html#automatic)\n  * [Manual (user)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGIN.html#manual-user)\n    * [API ID](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGIN.html#api-id)\n  * [Manual (bot)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGIN.html#manual-bot)\n  * [QR code login (user)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGIN.html#qr-code-user)\n* [Features](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFEATURES.html) - MadelineProto can do everything official clients can do, and more!\n* [Requirements](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FREQUIREMENTS.html) - MadelineProto requires the mbstring, xml, json, fileinfo, gmp, openssl, iconv, gd extensions to function properly.\n* [MadelineProto on Docker](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDOCKER.html) - MadelineProto offers an official MadelineProto docker image for the linux\u002Famd64, linux\u002Farm64 and linux\u002Friscv64 platforms @ hub.madelineproto.xyz\u002Fdanog\u002Fmadelineproto.\n  * [Getting started](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDOCKER.html#getting-started)\n    * [CLI bot (recommended)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDOCKER.html#cli-bot-recommended)\n    * [Databases on docker](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDOCKER.html#databases-on-docker)\n    * [Web docker](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDOCKER.html#web-docker)\n    * [Custom extensions](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDOCKER.html#custom-extensions)\n* [Metrics](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FMETRICS.html) - MadelineProto can expose many useful metrics, that can be visualized using the official MadelineProto Grafana dashboard.\n* [Installation](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FINSTALLATION.html) - There are various ways to install MadelineProto:\n  * [Simple](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FINSTALLATION.html#simple)\n  * [Composer from existing project](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FINSTALLATION.html#composer-from-existing-project)\n  * [Composer from scratch](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FINSTALLATION.html#composer-from-scratch)\n* [Broadcasting messages to all users](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FBROADCAST.html) - MadelineProto can be used to broadcast messages to all users, chats and channels of a bot or userbot.\n* [Handling updates (new messages & other events)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html) - Update handling can be done in different ways:\n  * [Async Event driven](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#async-event-driven)\n    * [Full example](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#async-event-driven)\n    * [Bound methods](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#bound-methods)\n    * [Filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html)\n      * [Simple filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html#simple-filters)\n      * [Attribute filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html#attribute-filters)\n      * [MTProto filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html#mtproto-filters)\n    * [Plugins](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html)\n    * [Cron](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#cron)\n    * [Persisting data and IPC](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#persisting-data-and-ipc)\n    * [Built-in ORM](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#built-in-orm)\n    * [IPC](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#ipc)\n    * [Restarting](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#restarting)\n    * [Self-restart on webhosts](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#self-restart-on-webhosts)\n    * [Multi-account](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#multiaccount)\n    * [Automatic static analysis](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#automatic-static-analysis)\n    * [Avoiding the use of filesystem functions](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#avoiding-the-use-of-filesystem-functions)\n  * [Webhook (for HTTP APIs)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#webhook)\n  * [getUpdates (only for Javascript APIs)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#getUpdates)\n  * [Noop (default)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#noop)\n  * [danog\\MadelineProto\\Broadcast\\Progress &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FBroadcast\u002FProgress.html) - Broadcast progress.\n  * [danog\\MadelineProto\\EventHandler\\AbstractMessage &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FAbstractMessage.html) - Represents an incoming or outgoing message.\n  * [danog\\MadelineProto\\EventHandler\\AbstractPrivateMessage &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FAbstractPrivateMessage.html) - Represents a private or secret chat message.\n  * [danog\\MadelineProto\\EventHandler\\AbstractStory &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FAbstractStory.html) - Represents a Telegram Story.\n  * [danog\\MadelineProto\\EventHandler\\BotCommands &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FBotCommands.html) - The [command set](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fbots\u002Fcommands) of a certain bot in a certain chat has changed.\n  * [danog\\MadelineProto\\EventHandler\\CallbackQuery &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FCallbackQuery.html) - Represents a query sent by the user by clicking on a button.\n  * [danog\\MadelineProto\\EventHandler\\Channel\\ChannelParticipant &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FChannel\u002FChannelParticipant.html) - A participant has left, joined, was banned or admin'd in a [channel or supergroup](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fchannel).\n  * [danog\\MadelineProto\\EventHandler\\Channel\\MessageForwards &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FChannel\u002FMessageForwards.html) - Indicates that the forward counter of a message in a channel has changed.\n  * [danog\\MadelineProto\\EventHandler\\Channel\\MessageViewsChanged &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FChannel\u002FMessageViewsChanged.html) - Indicates that the view counter of a message in a channel has changed.\n  * [danog\\MadelineProto\\EventHandler\\Channel\\UpdateChannel &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FChannel\u002FUpdateChannel.html) - A new channel is available, or info about an existing channel was changed.\n  * [danog\\MadelineProto\\EventHandler\\ChatInviteRequester &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FChatInviteRequester.html) - Indicates someone has requested to join a chat or channel.\n  * [danog\\MadelineProto\\EventHandler\\ChatInviteRequester\\BotChatInviteRequest &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FChatInviteRequester\u002FBotChatInviteRequest.html) - Indicates someone has requested to join a chat or channel (bots only).\n  * [danog\\MadelineProto\\EventHandler\\ChatInviteRequester\\PendingJoinRequests &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FChatInviteRequester\u002FPendingJoinRequests.html) - Someone has requested to join a chat or channel.\n  * [danog\\MadelineProto\\EventHandler\\Delete &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FDelete.html) - Indicates that some messages were deleted.\n  * [danog\\MadelineProto\\EventHandler\\Delete\\DeleteChannelMessages &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FDelete\u002FDeleteChannelMessages.html) - Some messages in a [supergroup\u002Fchannel](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fchannel) were deleted.\n  * [danog\\MadelineProto\\EventHandler\\Delete\\DeleteMessages &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FDelete\u002FDeleteMessages.html) - Some messages were deleted in a private chat or simple group.\n  * [danog\\MadelineProto\\EventHandler\\Delete\\DeleteScheduledMessages &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FDelete\u002FDeleteScheduledMessages.html) - Some [scheduled messages](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fscheduled-messages) were deleted from the schedule queue of a chat.\n  * [danog\\MadelineProto\\EventHandler\\InlineQuery &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FInlineQuery.html) - An incoming inline query.\n  * [danog\\MadelineProto\\EventHandler\\Message &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage.html) - Represents an incoming or outgoing message.\n  * [danog\\MadelineProto\\EventHandler\\Message\\ChannelMessage &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FChannelMessage.html) - Represents an incoming or outgoing channel message.\n  * [danog\\MadelineProto\\EventHandler\\Message\\CommentReply &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FCommentReply.html) - Represents a reply to one of our messages in a channel comment group that we're not a member of (i.e. received via `@replies`).\n  * [danog\\MadelineProto\\EventHandler\\Message\\GroupMessage &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FGroupMessage.html) - Represents an incoming or outgoing group message.\n  * [danog\\MadelineProto\\EventHandler\\Message\\PrivateMessage &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FPrivateMessage.html) - Represents an incoming or outgoing private message.\n  * [danog\\MadelineProto\\EventHandler\\Message\\SecretMessage &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FSecretMessage.html) - Represents New encrypted message.\n  * [danog\\MadelineProto\\EventHandler\\Message\\ServiceMessage &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FServiceMessage.html) - Represents info about a service message.\n  * [danog\\MadelineProto\\EventHandler\\Message\\ServiceMessage &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FServiceMessage.html) - Represents info about a service message.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogBotAllowed &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogBotAllowed.html) - We have given the bot permission to send us direct messages.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogChannelCreated &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogChannelCreated.html) - The channel was created.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogChannelMigrateFrom &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogChannelMigrateFrom.html) - Indicates the channel was [migrated](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fchannel) from the specified chat.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogChatJoinedByLink &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogChatJoinedByLink.html) - A user joined the chat via an invite link.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogChatMigrateTo &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogChatMigrateTo.html) - Indicates the chat was [migrated](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fchannel) to the specified supergroup.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogContactSignUp &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogContactSignUp.html) - A contact just signed up to telegram.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogCreated &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogCreated.html) - A chat or channel was created.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogDeleteMessages &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogDeleteMessages.html) - Deleted messages.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogGameScore &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogGameScore.html) - Someone scored in a game.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogGeoProximityReached &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogGeoProximityReached.html) - A user of the chat is now in proximity of another user.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogGiftPremium &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogGiftPremium.html) - Info about a gifted Telegram Premium subscription.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogGiftStars &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogGiftStars.html) - Info about a gifted Telegram Stars.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogGroupCall &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogGroupCall.html) - Represents a service message about a group call.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogGroupCall\\GroupCall &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogGroupCall\u002FGroupCall.html) - The group call has started or ended.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogGroupCall\\GroupCallInvited &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogGroupCall\u002FGroupCallInvited.html) - A set of users was invited to the group call.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogGroupCall\\GroupCallScheduled &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogGroupCall\u002FGroupCallScheduled.html) - A group call was scheduled.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogHistoryCleared &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogHistoryCleared.html) - Chat history was cleared.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogMemberJoinedByRequest &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogMemberJoinedByRequest.html) - A user was accepted into the group by an admin.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogMemberLeft &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogMemberLeft.html) - A member left the chat or channel.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogMembersJoined &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogMembersJoined.html) - Some members joined the chat or channel.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogMessagePinned &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogMessagePinned.html) - A message was pinned in a chat.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogPaymentSent &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogPaymentSent.html) - A payment was sent.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogPaymentSentMe &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogPaymentSentMe.html) - A user just sent a payment to me (a bot).\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogPeerRequested &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogPeerRequested.html) - Contains info about a peer that the user shared with the bot after clicking on a [keyboardButtonRequestPeer](https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fconstructors\u002FkeyboardButtonRequestPeer.html) button.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogPhoneCall &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogPhoneCall.html) - A phone call.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogPhotoChanged &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogPhotoChanged.html) - The photo of the dialog was changed or deleted.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogReadMessages &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogReadMessages.html) - Messages marked as read.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogScreenshotTaken &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogScreenshotTaken.html) - A screenshot of the chat was taken.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogSetChatTheme &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogSetChatTheme.html) - The chat theme was changed.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogSetChatWallPaper &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogSetChatWallPaper.html) - The [wallpaper](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fwallpapers) of the current chat was changed.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogSetTTL &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogSetTTL.html) - The Time-To-Live of messages in this chat was changed.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogStarGift &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogStarGift.html) - Info about a Star gifted.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogSuggestProfilePhoto &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogSuggestProfilePhoto.html) - A new profile picture was suggested using [photos.uploadContactProfilePhoto](https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fphotos.uploadContactProfilePhoto.html).\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogTitleChanged &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogTitleChanged.html) - The title of a channel or group has changed.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogTopicCreated &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogTopicCreated.html) - A [forum topic](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fforum#forum-topics) was created.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogTopicEdited &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogTopicEdited.html) - [Forum topic](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fforum#forum-topics) information was edited.\n  * [danog\\MadelineProto\\EventHandler\\Message\\Service\\DialogWebView &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FMessage\u002FService\u002FDialogWebView.html) - Data from an opened [reply keyboard bot web app](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fbots\u002Fwebapps) was relayed to the bot that owns it (user & bot side service message).\n  * [danog\\MadelineProto\\EventHandler\\Payments\\Payment &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FPayments\u002FPayment.html) - This object contains information about an incoming pre-checkout query.\n  * [danog\\MadelineProto\\EventHandler\\Pinned &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FPinned.html) - Indicates that some messages were pinned\u002Funpinned.\n  * [danog\\MadelineProto\\EventHandler\\Pinned\\PinnedChannelMessages &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FPinned\u002FPinnedChannelMessages.html) - Represents messages that were pinned\u002Funpinned in a [channel](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fchannel).\n  * [danog\\MadelineProto\\EventHandler\\Pinned\\PinnedGroupMessages &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FPinned\u002FPinnedGroupMessages.html) - Represents messages that were pinned\u002Funpinned in a [chat\u002Fsupergroup](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fchannel).\n  * [danog\\MadelineProto\\EventHandler\\Pinned\\PinnedPrivateMessages &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FPinned\u002FPinnedPrivateMessages.html) - Some messages were pinned in a private chat.\n  * [danog\\MadelineProto\\EventHandler\\Privacy &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FPrivacy.html) - Indicates some privacy rules for a user or set of users.\n  * [danog\\MadelineProto\\EventHandler\\Query\\ButtonQuery &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FQuery\u002FButtonQuery.html) - Represents a query sent by the user by clicking on a button.\n  * [danog\\MadelineProto\\EventHandler\\Query\\ChatButtonQuery &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FQuery\u002FChatButtonQuery.html) - Represents a query sent by the user by clicking on a button in a chat.\n  * [danog\\MadelineProto\\EventHandler\\Query\\ChatGameQuery &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FQuery\u002FChatGameQuery.html) - Represents a query sent by the user by clicking on a \"Play game\" button in a chat.\n  * [danog\\MadelineProto\\EventHandler\\Query\\GameQuery &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FQuery\u002FGameQuery.html) - Represents a query sent by the user by clicking on a \"Play game\" button.\n  * [danog\\MadelineProto\\EventHandler\\Query\\InlineButtonQuery &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FQuery\u002FInlineButtonQuery.html) - Represents a query sent by the user by clicking on a button in an inline message.\n  * [danog\\MadelineProto\\EventHandler\\Query\\InlineGameQuery &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FQuery\u002FInlineGameQuery.html) - Represents a query sent by the user by clicking on a \"Play game\" button in an inline message.\n  * [danog\\MadelineProto\\EventHandler\\Story\\Story &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FStory\u002FStory.html) - Represents a Telegram story.\n  * [danog\\MadelineProto\\EventHandler\\Story\\StoryDeleted &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FStory\u002FStoryDeleted.html) - Represents a deleted story.\n  * [danog\\MadelineProto\\EventHandler\\Story\\StoryReaction &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FStory\u002FStoryReaction.html) - Represents a reaction to a story.\n  * [danog\\MadelineProto\\EventHandler\\Typing &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FTyping.html) - A user is typing.\n  * [danog\\MadelineProto\\EventHandler\\Typing\\ChatUserTyping &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FTyping\u002FChatUserTyping.html) - The user is preparing a message in a group; typing, recording, uploading, etc. This update is valid for 6 seconds. If no further updates of this kind are received after 6 seconds, it should be considered that the user stopped doing whatever they were doing.\n  * [danog\\MadelineProto\\EventHandler\\Typing\\SecretUserTyping &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FTyping\u002FSecretUserTyping.html) - The user is preparing a message in a secret chat; typing, recording, uploading, etc. This update is valid for 6 seconds. If no further updates of this kind are received after 6 seconds, it should be considered that the user stopped doing whatever they were doing.\n  * [danog\\MadelineProto\\EventHandler\\Typing\\SupergroupUserTyping &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FTyping\u002FSupergroupUserTyping.html) - A user is typing in a [supergroup](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fchannel).\n  * [danog\\MadelineProto\\EventHandler\\Typing\\UserTyping &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FTyping\u002FUserTyping.html) - The user is preparing a message; typing, recording, uploading, etc. This update is valid for 6 seconds. If no further updates of this kind are received after 6 seconds, it should be considered that the user stopped doing whatever they were doing.\n  * [danog\\MadelineProto\\EventHandler\\User\\Blocked &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FBlocked.html) - A peer was blocked.\n  * [danog\\MadelineProto\\EventHandler\\User\\BotStopped &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FBotStopped.html) - A bot was stopped or re-started.\n  * [danog\\MadelineProto\\EventHandler\\User\\Phone &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FPhone.html) - A user’s phone number was changed.\n  * [danog\\MadelineProto\\EventHandler\\User\\Status &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FStatus.html) - Contains a status update.\n  * [danog\\MadelineProto\\EventHandler\\User\\Status\\Emoji &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FStatus\u002FEmoji.html) - The [emoji status](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Femoji-status) of a certain user has changed or was removed.\n  * [danog\\MadelineProto\\EventHandler\\User\\Status\\EmptyStatus &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FStatus\u002FEmptyStatus.html) - User status has not been set yet.\n  * [danog\\MadelineProto\\EventHandler\\User\\Status\\LastMonth &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FStatus\u002FLastMonth.html) - Online status: last seen last month.\n  * [danog\\MadelineProto\\EventHandler\\User\\Status\\LastWeek &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FStatus\u002FLastWeek.html) - Online status: last seen last week.\n  * [danog\\MadelineProto\\EventHandler\\User\\Status\\Offline &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FStatus\u002FOffline.html) - The user’s offline status.\n  * [danog\\MadelineProto\\EventHandler\\User\\Status\\Online &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FStatus\u002FOnline.html) - Online status of the user.\n  * [danog\\MadelineProto\\EventHandler\\User\\Status\\Recently &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FStatus\u002FRecently.html) - Online status: last seen recently.\n  * [danog\\MadelineProto\\EventHandler\\User\\Username &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FUser\u002FUsername.html) - Changes were made to the user’s first name, last name or username.\n  * [danog\\MadelineProto\\VoIP &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FVoIP.html) - This update represents a VoIP Telegram call.\n* [Filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html) - MadelineProto offers a very simple and intuitive message filtering system, based on PHP's type system and attributes.\n  * [Simple filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html#simple-filters)\n  * [Attribute filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html#attribute-filters)\n    * [Creating custom attribute filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html#creating-custom-attribute-filters)\n  * [MTProto filters](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILTERS.html#mtproto-filters)\n* [Plugins](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html) - MadelineProto offers a native plugin system, based on event handlers!\n  * [Installing plugins](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#installing-plugins)\n    * [Simple installation](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#simple-installation)\n    * [Composer installation](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#composer-installation)\n    * [Builtin plugins](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#builtin-plugins)\n  * [Creating plugins](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#creating-plugins)\n    * [Full plugin example](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#full-plugin-example)\n    * [Limitations](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#limitations)\n    * [Namespace requirements](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#namespace-requirements)\n    * [Distribution](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPLUGINS.html#distribution)\n  * [danog\\MadelineProto\\EventHandler\\Plugin\\RestartPlugin &raquo;](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FEventHandler\u002FPlugin\u002FRestartPlugin.html)\n  * [Configuration](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#configuration)\n  * [Creating and uploading text files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#creating-and-uploading-text-files)\n  * [Logging](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPDATES.html#logging)\n* [Database](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDATABASE.html) - MadelineProto optionally can keep some of its internal data in a database, such as mysql, mariadb, postgres or redis (you can also add your own!), reducing RAM usage.\n  * [\\danog\\MadelineProto\\Settings\\Database\\Memory: Memory backend settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FDatabase\u002FMemory.html)\n  * [\\danog\\MadelineProto\\Settings\\Database\\Mysql: MySQL backend settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FDatabase\u002FMysql.html)\n  * [\\danog\\MadelineProto\\Settings\\Database\\Postgres: Postgres backend settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FDatabase\u002FPostgres.html)\n  * [\\danog\\MadelineProto\\Settings\\Database\\Redis: Redis backend settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FDatabase\u002FRedis.html)\n* [Settings](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FSETTINGS.html) - MadelineProto has lots of settings that can be used to modify the behaviour of the library.\n  * [AppInfo: App information.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FAppInfo.html)\n  * [Auth: Cryptography settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FAuth.html)\n  * [Connection: Connection settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FConnection.html)\n  * [Files: File management settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FFiles.html)\n  * [Logger: Logger settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FLogger.html)\n  * [Peer: Peer database settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FPeer.html)\n  * [Pwr: PWRTelegram settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FPwr.html)\n  * [RPC: RPC settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FRPC.html)\n  * [SecretChats: Secret chat settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FSecretChats.html)\n  * [Serialization: Serialization settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FSerialization.html)\n  * [TLSchema: TL schema settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FTLSchema.html)\n  * [Templates: Web and CLI template settings for login.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FTemplates.html)\n  * [VoIP: VoIP settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FVoIP.html)\n  * [Database\\Memory: Memory backend settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FDatabase\u002FMemory.html)\n  * [Database\\Mysql: MySQL backend settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FDatabase\u002FMysql.html)\n  * [Database\\Postgres: Postgres backend settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FDatabase\u002FPostgres.html)\n  * [Database\\Redis: Redis backend settings.](https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FSettings\u002FDatabase\u002FRedis.html)\n* [Getting info about the current user](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FSELF.html) - Here's how you can fetch info about the currently logged in user\n* [Exceptions](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FEXCEPTIONS.html) - MadelineProto can throw lots of different exceptions.\n  * [List of exception types](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FEXCEPTIONS.html#list-of-exception-types)\n  * [Pretty TL trace](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FEXCEPTIONS.html#pretty-tl-trace)\n  * [Getting the TL trace](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FEXCEPTIONS.html#getting-the-tl-trace)\n* [Avoiding FLOOD_WAITs](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFLOOD_WAIT.html) - If you make too many requests to telegram, you might get FLOOD_WAITed for a while. To avoid these flood waits, you must calculate the flood wait rate.\n* [Logging](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGGING.html) - MadelineProto provides a unified class for logging messages to the logging destination defined in settings.\n* [Telegram VoIP phone calls](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCALLS.html) - MadelineProto provides an easy wrapper to work with phone calls.\n  * [Requesting a call](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCALLS.html#requesting-a-call)\n  * [Playing audio files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCALLS.html#playing-audio-files)\n    * [Webhost support!](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCALLS.html#webhost-support)\n  * [Accepting calls](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCALLS.html#accepting-calls)\n* [Uploading and downloading files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html) - MadelineProto provides fully parallelized wrapper methods to upload and download files that support bot API file ids, direct upload by URL and file renaming.\n  * [Bot API file IDs](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#bot-api-file-ids)\n  * [Uploading & sending files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#sending-files)\n    * [Security notice](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#security-notice)\n    * [Photos](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#photos)\n    * [Photos as documents](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#photos-as-documents)\n    * [Documents](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#documents)\n    * [GIFs](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#gifs)\n    * [Videos](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#videos)\n    * [Music](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#music)\n    * [Voice](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#voice)\n    * [Stickers](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#stickers)\n  * [Uploading files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#uploading-files)\n  * [Reusing uploaded files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#reusing-uploaded-files)\n  * [Renaming files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#renaming-files)\n  * [Downloading files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#downloading-files)\n    * [Extracting download info](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#extracting-download-info)\n    * [Getting a download link](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#getting-a-download-link)\n    * [Downloading profile pictures](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#downloading-profile-pictures)\n    * [Download to directory](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#download-to-directory)\n    * [Download to file](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#download-to-file)\n    * [Download to stream](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#download-to-stream)\n    * [Download to callback](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#download-to-callback)\n    * [Download to http-server](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#download-to-http-server)\n    * [Download to browser](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#download-to-browser)\n  * [Getting progress](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html#getting-progress)\n* [Getting info about chats](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCHAT_INFO.html) - There are various methods that can be used to fetch info about chats, based on bot API id, Peer, User, Chat objects.\n  * [Full chat info with full list of participants](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCHAT_INFO.html#getPwrChat)\n  * [Full chat info](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCHAT_INFO.html#getFullInfo)\n  * [Reduced chat info (very fast)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCHAT_INFO.html#getInfo)\n  * [Just the chat ID (extremely fast)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCHAT_INFO.html#getId)\n* [Getting all chats (dialogs)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDIALOGS.html) - There are two ways to get a list of all chats, depending if you logged in as a user, or as a bot.\n  * [Dialog ID list](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDIALOGS.html#getDialogIds)\n  * [Full dialog info](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDIALOGS.html#getFullDialogs)\n* [Inline buttons](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FINLINE_BUTTONS.html) - You can easily click inline buttons using MadelineProto, just access the correct button:\n* [Secret chats](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FSECRET_CHATS.html) - MadelineProto provides wrappers to work with secret chats.\n  * [Requesting secret chats](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FSECRET_CHATS.html#requesting-secret-chats)\n  * [Accepting secret chats](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FSECRET_CHATS.html#accepting-secret-chats)\n  * [Checking secret chat status](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FSECRET_CHATS.html#checking-secret-chat-status)\n  * [Sending secret messages](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FSECRET_CHATS.html#sending-secret-messages)\n* [Using a proxy](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPROXY.html) - You can use a proxy with MadelineProto.\n  * [How to set a proxy](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPROXY.html#how-to-set-a-proxy)\n  * [Multiple proxies with automatic switch](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPROXY.html#multiple-proxies-with-automatic-switch)\n  * [Use pre-built MTProxy](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPROXY.html#mtproxy)\n  * [Use pre-built Socks5 proxy](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPROXY.html#socks5-proxy)\n  * [Use pre-built HTTP proxy](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPROXY.html#http-proxy)\n  * [Build your own proxy](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FPROXY.html#build-your-proxy)\n* [Async](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html) - MadelineProto now features async, for incredible speed improvements, and parallel processing, all powered by amphp.\n  * [Usage](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#usage)\n    * [Async in event handler](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#async-in-event-handler)\n    * [Multiple async](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#multiple-async)\n    * [Ignored async](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#ignored-async)\n    * [Combining async operations](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#combining-async-operations)\n    * [MadelineProto and AMPHP async APIs](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#madelineproto-and-amphp-async-apis)\n      * [Helper methods](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#helper-methods)\n        * [Async sleep](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#async-sleep-does-not-block-the-main-thread)\n        * [Async readline](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#async-readline-does-not-block-the-main-thread)\n        * [Async echo](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#async-echo-does-not-block-the-main-thread)\n        * [MadelineProto HTTP client](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#madelineproto-http-client)\n        * [Async forking](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#async-forking-does-async-green-thread-forking)\n        * [Async flock](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#async-flock)\n      * [MadelineProto async loop APIs](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FASYNC.html#async-loop-apis)\n* [FAQ](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFAQ.html) - Here's a list of common MadelineProto questions and answers.\n* [Upgrading from MadelineProto v7 to v8](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUPGRADING.html) - MadelineProto v8 is a major MadelineProto update, that removes a large number of long-deprecated APIs: I've created this upgrade checklist, to simplify the upgrade process.\n* [Using methods](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html) - There are simplifications for many, if not all of, these methods.\n  * [Named arguments](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#named-arguments)\n  * [Peers](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#peers)\n  * [Files](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html)\n  * [Secret chats](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#secret-chats)\n  * [Entities (Markdown & HTML)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#entities)\n  * [reply_markup (keyboards & inline keyboards)](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#reply_markup)\n  * [bot API objects](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#bot-api-objects)\n  * [No result](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#no-result)\n  * [Multiple method calls](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#multiple-method-calls)\n  * [Cancellation](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FUSING_METHODS.html#cancellation)\n  * [FULL API Documentation with descriptions](https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002F)\n    * [Login](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FLOGIN.html)\n    * [Change 2FA password: update2FA](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fupdate2fa.html)\n    * [Get all chats, broadcast a message to all chats: getDialogIds, getDialogs, getFullDialogs](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FDIALOGS.html)\n    * [Get the full participant list of a channel\u002Fgroup\u002Fsupergroup: getPwrChat](https:\u002F\u002Fdocs.madelineproto.xyz\u002FgetPwrChat.html)\n    * [Get full info about a user\u002Fchat\u002Fsupergroup\u002Fchannel: getFullInfo](https:\u002F\u002Fdocs.madelineproto.xyz\u002FgetFullInfo.html)\n    * [Get info about a user\u002Fchat\u002Fsupergroup\u002Fchannel: getInfo](https:\u002F\u002Fdocs.madelineproto.xyz\u002FgetInfo.html)\n    * [Get the ID of a user\u002Fchat\u002Fsupergroup\u002Fchannel\u002Fupdate: getID](https:\u002F\u002Fdocs.madelineproto.xyz\u002FgetId.html)\n    * [Get info about the currently logged-in user: getSelf](https:\u002F\u002Fdocs.madelineproto.xyz\u002FgetSelf.html)\n    * [Upload or download files up to 4 GB: uploadFrom*, downloadTo*](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FFILES.html)\n    * [Make a phone call and play a song](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FCALLS.html)\n    * [Create a secret chat bot](https:\u002F\u002Fdocs.madelineproto.xyz\u002Fdocs\u002FSECRET_CHATS.html)\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fpayments.updateStarGiftPrice.html\" name=\"payments.updateStarGiftPrice\">A collectible gift we own » can be put up for sale on the gift marketplace » with this method, see here » for more info: payments.updateStarGiftPrice\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.declinePasswordReset.html\" name=\"account.declinePasswordReset\">Abort a pending 2FA password reset, see here for more info »: account.declinePasswordReset\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fauth.acceptLoginToken.html\" name=\"auth.acceptLoginToken\">Accept QR code login token, logging in the app that generated it: auth.acceptLoginToken\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#acceptCall\" name=\"acceptCall\">Accept call: acceptCall\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#acceptSecretChat\" name=\"acceptSecretChat\">Accept secret chat: acceptSecretChat\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fhelp.acceptTermsOfService.html\" name=\"help.acceptTermsOfService\">Accept the new terms of service: help.acceptTermsOfService\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fpayments.changeStarsSubscription.html\" name=\"payments.changeStarsSubscription\">Activate or deactivate a Telegram Star subscription »: payments.changeStarsSubscription\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fbots.toggleUsername.html\" name=\"bots.toggleUsername\">Activate or deactivate a purchased fragment.com username associated to a bot we own: bots.toggleUsername\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.toggleUsername.html\" name=\"channels.toggleUsername\">Activate or deactivate a purchased fragment.com username associated to a supergroup or channel we own: channels.toggleUsername\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.toggleUsername.html\" name=\"account.toggleUsername\">Activate or deactivate a purchased fragment.com username associated to the currently logged-in user: account.toggleUsername\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fstories.activateStealthMode.html\" name=\"stories.activateStealthMode\">Activates stories stealth mode, see here » for more info: stories.activateStealthMode\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.saveGif.html\" name=\"messages.saveGif\">Add GIF to saved gifs list: messages.saveGif\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fbots.addPreviewMedia.html\" name=\"bots.addPreviewMedia\">Add a main mini app preview, see here » for more info: bots.addPreviewMedia\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fstickers.addStickerToSet.html\" name=\"stickers.addStickerToSet\">Add a sticker to a stickerset. The sticker set must have been created by the current user\u002Fbot: stickers.addStickerToSet\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fcontacts.addContact.html\" name=\"contacts.addContact\">Add an existing telegram user as contact: contacts.addContact\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fpayments.updateStarGiftCollection.html\" name=\"payments.updateStarGiftCollection\">Add or remove gifts from a star gift collection », or rename the collection: payments.updateStarGiftCollection\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.saveRecentSticker.html\" name=\"messages.saveRecentSticker\">Add\u002Fremove sticker from recent stickers list: messages.saveRecentSticker\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fcontacts.block.html\" name=\"contacts.block\">Adds a peer to a blocklist, see here » for more info: contacts.block\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.addChatUser.html\" name=\"messages.addChatUser\">Adds a user to a chat and sends a service message on it: messages.addChatUser\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.saveMusic.html\" name=\"account.saveMusic\">Adds or removes a song from the current user's profile see here » for more info on the music tab of the profile page: account.saveMusic\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.setBoostsToUnblockRestrictions.html\" name=\"channels.setBoostsToUnblockRestrictions\">Admins with ban_users admin rights » may allow users that apply a certain number of booosts » to the group to bypass slow mode » and other » supergroup restrictions, see here » for more info: channels.setBoostsToUnblockRestrictions\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.toggleNoPaidMessagesException.html\" name=\"account.toggleNoPaidMessagesException\">Allow a user to send us messages without paying if paid messages » are enabled: account.toggleNoPaidMessagesException\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fbots.toggleUserEmojiStatusPermission.html\" name=\"bots.toggleUserEmojiStatusPermission\">Allow or prevent a bot from changing our emoji status »: bots.toggleUserEmojiStatusPermission\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fbots.allowSendMessage.html\" name=\"bots.allowSendMessage\">Allow the specified bot to send us messages: bots.allowSendMessage\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.setInlineBotResults.html\" name=\"messages.setInlineBotResults\">Answer an inline query, for bots only: messages.setInlineBotResults\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fbots.answerWebhookJSONQuery.html\" name=\"bots.answerWebhookJSONQuery\">Answers a custom query; for bots only: bots.answerWebhookJSONQuery\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.appendTodoList.html\" name=\"messages.appendTodoList\">Appends one or more items to a todo list »: messages.appendTodoList\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fpayments.applyGiftCode.html\" name=\"payments.applyGiftCode\">Apply a Telegram Premium giftcode »: payments.applyGiftCode\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.toggleStickerSets.html\" name=\"messages.toggleStickerSets\">Apply changes to multiple stickersets: messages.toggleStickerSets\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fpremium.applyBoost.html\" name=\"premium.applyBoost\">Apply one or more boosts » to a peer: premium.applyBoost\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.toggleSuggestedPostApproval.html\" name=\"messages.toggleSuggestedPostApproval\">Approve or reject a suggested post »: messages.toggleSuggestedPostApproval\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.updatePersonalChannel.html\" name=\"account.updatePersonalChannel\">Associate (or remove) a personal channel », that will be listed on our personal profile page »: account.updatePersonalChannel\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.setDiscussionGroup.html\" name=\"channels.setDiscussionGroup\">Associate a group to a channel as discussion group for that channel: channels.setDiscussionGroup\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.setStickers.html\" name=\"channels.setStickers\">Associate a stickerset to the supergroup: channels.setStickers\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#flock\" name=\"flock\">Asynchronously lock a file: flock\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#readLine\" name=\"readLine\">Asynchronously read line: readLine\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#sleep\" name=\"sleep\">Asynchronously sleep: sleep\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#echo\" name=\"echo\">Asynchronously write to stdout\u002Fbrowser: echo\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.editBanned.html\" name=\"channels.editBanned\">Ban\u002Funban\u002Fkick a user in a supergroup\u002Fchannel: channels.editBanned\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#base64urlEncode\" name=\"base64urlEncode\">Base64URL encode: base64urlEncode\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.checkQuickReplyShortcut.html\" name=\"messages.checkQuickReplyShortcut\">Before offering the user the choice to add a message to a quick reply shortcut, to make sure that none of the limits specified here » were reached: messages.checkQuickReplyShortcut\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fbots.getPreviewInfo.html\" name=\"bots.getPreviewInfo\">Bot owners only, fetch main mini app preview information, see here » for more info: bots.getPreviewInfo\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.getBotBusinessConnection.html\" name=\"account.getBotBusinessConnection\">Bots may invoke this method to re-fetch the updateBotBusinessConnect constructor associated with a specific business connection_id, see here » for more info on connected business bots.: account.getBotBusinessConnection\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fphone.sendConferenceCallBroadcast.html\" name=\"phone.sendConferenceCallBroadcast\">Broadcast a blockchain block to all members of a conference call, see here » for more info: phone.sendConferenceCallBroadcast\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.updateBusinessLocation.html\" name=\"account.updateBusinessLocation\">Businesses » may advertise their location using this method, see here » for more info: account.updateBusinessLocation\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.getMessageAuthor.html\" name=\"channels.getMessageAuthor\">Can only be invoked by non-bot admins of a monoforum », obtains the original sender of a message sent by other monoforum admins to the monoforum, on behalf of the channel associated to the monoforum: channels.getMessageAuthor\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fhelp.getUserInfo.html\" name=\"help.getUserInfo\">Can only be used by TSF members to obtain internal information: help.getUserInfo\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fpayments.botCancelStarsSubscription.html\" name=\"payments.botCancelStarsSubscription\">Cancel a bot subscription: payments.botCancelStarsSubscription\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#cancelBroadcast\" name=\"cancelBroadcast\">Cancel a running broadcast: cancelBroadcast\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.cancelPasswordEmail.html\" name=\"account.cancelPasswordEmail\">Cancel the code that was sent to verify an email to use as 2FA recovery method: account.cancelPasswordEmail\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fauth.cancelCode.html\" name=\"auth.cancelCode\">Cancel the login verification code: auth.cancelCode\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.setDefaultReaction.html\" name=\"messages.setDefaultReaction\">Change default emoji reaction to use in the quick reaction menu: the value is synced across devices and can be fetched using help.getConfig, reactions_default field: messages.setDefaultReaction\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fphone.toggleGroupCallSettings.html\" name=\"phone.toggleGroupCallSettings\">Change group call settings: phone.toggleGroupCallSettings\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.saveAutoDownloadSettings.html\" name=\"account.saveAutoDownloadSettings\">Change media autodownload settings: account.saveAutoDownloadSettings\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.updateUsername.html\" name=\"channels.updateUsername\">Change or remove the username of a supergroup\u002Fchannel: channels.updateUsername\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.setPrivacy.html\" name=\"account.setPrivacy\">Change privacy settings of current account: account.setPrivacy\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.changeAuthorizationSettings.html\" name=\"account.changeAuthorizationSettings\">Change settings related to a session: account.changeAuthorizationSettings\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.setChatTheme.html\" name=\"messages.setChatTheme\">Change the chat theme of a certain chat, see here » for more info: messages.setChatTheme\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.saveDefaultSendAs.html\" name=\"messages.saveDefaultSendAs\">Change the default peer that should be used when sending messages, reactions, poll votes to a specific group: messages.saveDefaultSendAs\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fbots.updateUserEmojiStatus.html\" name=\"bots.updateUserEmojiStatus\">Change the emoji status of a user (invoked by bots, see here » for more info on the full flow): bots.updateUserEmojiStatus\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.changePhone.html\" name=\"account.changePhone\">Change the phone number of the current account: account.changePhone\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.editPhoto.html\" name=\"channels.editPhoto\">Change the photo of a channel\u002Fsupergroup: channels.editPhoto\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.setReactionsNotifySettings.html\" name=\"account.setReactionsNotifySettings\">Change the reaction notification settings »: account.setReactionsNotifySettings\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.setChatAvailableReactions.html\" name=\"messages.setChatAvailableReactions\">Change the set of message reactions » that can be used in a certain group, supergroup or channel: messages.setChatAvailableReactions\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.editChatTitle.html\" name=\"messages.editChatTitle\">Changes chat name and sends a service message on it: messages.editChatTitle\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.editChatPhoto.html\" name=\"messages.editChatPhoto\">Changes chat photo and sends a service message on it: messages.editChatPhoto\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fstickers.changeStickerPosition.html\" name=\"stickers.changeStickerPosition\">Changes the absolute position of a sticker in the set to which it belongs. The sticker set must have been created by the current user\u002Fbot: stickers.changeStickerPosition\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.setDefaultHistoryTTL.html\" name=\"messages.setDefaultHistoryTTL\">Changes the default value of the Time-To-Live setting, applied to all new chats: messages.setDefaultHistoryTTL\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.setMainProfileTab.html\" name=\"channels.setMainProfileTab\">Changes the main profile tab of a channel, see here » for more info: channels.setMainProfileTab\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.setMainProfileTab.html\" name=\"account.setMainProfileTab\">Changes the main profile tab of the current user, see here » for more info: account.setMainProfileTab\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fmessages.togglePaidReactionPrivacy.html\" name=\"messages.togglePaidReactionPrivacy\">Changes the privacy of already sent paid reactions on a specific message: messages.togglePaidReactionPrivacy\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Faccount.updateUsername.html\" name=\"account.updateUsername\">Changes username for the current user: account.updateUsername\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#hasPlugin\" name=\"hasPlugin\">Check if a certain event handler plugin is installed: hasPlugin\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fbots.checkDownloadFileParams.html\" name=\"bots.checkDownloadFileParams\">Check if a mini app can request the download of a specific file: called when handling web_app_request_file_download events »: bots.checkDownloadFileParams\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fchannels.checkUsername.html\" name=\"channels.checkUsername\">Check if a username is free and can be assigned to a channel\u002Fsupergroup: channels.checkUsername\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#hasEventHandler\" name=\"hasEventHandler\">Check if an event handler instance is present: hasEventHandler\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#hasAdmins\" name=\"hasAdmins\">Check if has admins: hasAdmins\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#hasReportPeers\" name=\"hasReportPeers\">Check if has report peers: hasReportPeers\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#isArrayOrAlike\" name=\"isArrayOrAlike\">Check if is array or similar (traversable && countable && arrayAccess): isArrayOrAlike\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FPHP\u002Fdanog\u002FMadelineProto\u002FAPI.html#peerIsset\" name=\"peerIsset\">Check if peer is present in internal peer database: peerIsset\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fauth.checkRecoveryPassword.html\" name=\"auth.checkRecoveryPassword\">Check if the 2FA recovery code sent using auth.requestPasswordRecovery is valid, before passing it to auth.recoverPassword: auth.checkRecoveryPassword\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fusers.getSavedMusicByID.html\" name=\"users.getSavedMusicByID\">Check if the passed songs are still pinned to the user's profile, or refresh the file references of songs pinned on a user's profile see here » for more info: users.getSavedMusicByID\u003C\u002Fa>\n    * \u003Ca href=\"https:\u002F\u002Fdocs.madelineproto.xyz\u002FAPI_docs\u002Fmethods\u002Fpayments.checkCanSendGift.html\" name=\"pa","MadelineProto 是一个用于 Telegram MTProto 协议的异步 PHP 客户端 API。它支持通过电话号码或机器人令牌登录，无需使用 Telegram 的 Bot API 即可实现与官方应用相同的功能交互，并且现已全面支持异步操作。项目采用 PHP 语言编写，基于 amphp 框架构建，具备处理呼叫、内联机器人、秘密聊天等高级功能。适用于需要开发 Telegram 应用程序的各种场景，如创建自定义客户端、自动化工具或集成服务等。",2,"2026-06-11 03:18:23","top_language"]