Getting all chats (dialogs)

There are two ways to get a list of all chats, depending if you logged in as a user, or as a bot.

User: get_dialogs

$dialogs = $MadelineProto->get_dialogs();
foreach ($dialogs as $peer) {
    $MadelineProto->messages->sendMessage(['peer' => $peer, 'message' => 'Hi! Testing MadelineProto broadcasting!']);

get_dialogs will return a full list of all chats you’re member of, see here for the parameters and the result

Bot: internal peer database

foreach ($MadelineProto->API->chats as $bot_api_id => $chat) {
    try {
        $MadelineProto->messages->sendMessage(['peer' => $chat, 'message' => "Hi $bot_api_id! Testing MadelineProto broadcasting!"]);
    } catch (\danog\MadelineProto\RPCErrorException $e) {
        echo $e;

Since bots cannot run get_dialogs, you must make use of the internal MadelineProto database to get a list of all users, chats and channels MadelineProto has seen. $MadelineProto->API->chats contains a list of Chat and User objects, indexed by bot API id.

Next section

This site uses cookies, as described in the cookie policy. By clicking on "Accept" you consent to the use of cookies.