Async PHP client/server API for the telegram MTProto protocol https://docs.madelineproto.xyz
Go to file
2019-06-23 13:08:44 +02:00
docs@7a17668c56 Update docs 2019-06-23 13:08:44 +02:00
lua
src Update docs 2019-06-23 13:08:44 +02:00
tests
userbots
.babelrc
.env.example
.gitignore
.gitmodules
.travis.yml
asyncify.php
bot.php
build_docs.php Update docs 2019-06-23 13:08:44 +02:00
CHANGELOG.md
CODE_OF_CONDUCT.md
combined_bot.php
composer.json
CONTRIBUTING.md
index.php
input.raw
layerdiff.php
LICENSE
magna.php
makephar.php
mtproxyd
phar.php
README.md Update docs 2019-06-23 13:08:44 +02:00
secret_bot.php
songs.php
translator.php

MadelineProto, a PHP MTProto telegram client

Created by Daniil Gentili

Do join the official channel, @MadelineProto and the support groups!

Approved by Telegram!

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!).

It is now fully async!

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->async(true);
$MadelineProto->loop(function () use ($MadelineProto) {
    yield $MadelineProto->start();

    $me = yield $MadelineProto->get_self();

    $MadelineProto->logger($me);

    if (!$me['bot']) {
        yield $MadelineProto->messages->sendMessage(['peer' => '@danogentili', 'message' => "Hi!\nThanks for creating MadelineProto! <3"]);
        yield $MadelineProto->channels->joinChannel(['channel' => '@MadelineProto']);

        try {
            yield $MadelineProto->messages->importChatInvite(['hash' => 'https://t.me/joinchat/Bgrajz6K-aJKu0IpGsLpBg']);
        } catch (\danog\MadelineProto\RPCErrorException $e) {
            $MadelineProto->logger($e);
        }

        yield $MadelineProto->messages->sendMessage(['peer' => 'https://t.me/joinchat/Bgrajz6K-aJKu0IpGsLpBg', 'message' => 'Testing MadelineProto!']);
    }
    yield $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).

Documentation

Very complex and complete examples

You can find examples for nearly every MadelineProto function in