1
0
mirror of https://github.com/danog/MadelineProto.git synced 2024-11-26 19:24:42 +01:00
Go to file
Daniil Gentili d7fcc08c66
For github archive program
This image will be stored in a glacier for eons to come.
 
Future generations: this image is of key importance for understanding our society. 

https://archiveprogram.github.com/
2019-11-23 16:26:30 +01:00
docs@336c4d4aa0 Document 2019-10-31 11:17:22 +01:00
examples Continue refactoring 2019-11-01 12:45:15 +01:00
legacy/danog/MadelineProto/Server Move legacy code 2019-11-02 13:49:58 +01:00
src CDN bugfix 2019-11-10 19:31:11 +01:00
tests For github archive program 2019-11-23 16:26:30 +01:00
tools Rename 2019-10-31 22:41:22 +01:00
.env.example Improve docs 2018-03-30 16:07:54 +00:00
.gitignore cs-fix 2019-09-02 17:08:36 +02:00
.gitmodules Rewrite pipesbot 2019-10-28 23:52:21 +01:00
.php_cs.dist cs-fix 2019-10-29 22:00:21 +01:00
.travis.yml Remove abstract static methods in PHP 5.6 2019-06-20 18:34:05 +02:00
bot.php Clean up 2019-10-28 22:39:23 +01:00
CODE_OF_CONDUCT.md Clean up 2019-10-28 22:39:23 +01:00
composer.json save 2019-10-31 15:06:25 +01:00
CONTRIBUTING.md Bugfixes 2017-02-13 13:27:59 +01:00
LICENSE Reorganized code 2016-08-08 18:10:13 +02:00
README.md Document 2019-10-31 11:17:22 +01:00

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->getSelf();

    $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

  • magnaluna webradio - Multifeatured Telegram VoIP webradio
  • tests/testing.php - examples for making/receiving calls, making secret chats, sending secret chat messages, videos, audios, voice recordings, gifs, stickers, photos, sending normal messages, videos, audios, voice recordings, gifs, stickers, photos.
  • bot.php - examples for sending normal messages, downloading any media
  • secret_bot.php - secret chat bot
  • pipesbot.php - examples for creating inline bots and using other inline bots via a userbot