Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 11.01.2010
Сообщений: 168

Давайте разберемся с Mtproto? Полезно будет всем!

12.10.2020, 07:35. Показов 3666. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пробую на зуб сервис Mtproto так надо передать файл 100 мб в бота телеграмм.
Я так понял можно как то получить file_id вида video@BAACAgIAAxkBAAMLX4B02OJurAzs3uEM3k hbekDU04MAAkEIAAK8twlInI7C8G01uU0bBA
и это уже в бота можно передать.

Встает вопрос в самом сервисе и как через него это реализуется.

Есть пример бота на гитхабе

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/usr/bin/env php
<?php
/**
 * Example bot.
 *
 * Copyright 2016-2020 Daniil Gentili
 * (https://daniil.it)
 * This file is part of MadelineProto.
 * MadelineProto is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 * MadelineProto is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 * You should have received a copy of the GNU General Public License along with MadelineProto.
 * If not, see <http://www.gnu.org/licenses/>.
 *
 * @author    Daniil Gentili <daniil@daniil.it>
 * @copyright 2016-2020 Daniil Gentili <daniil@daniil.it>
 * @license   https://opensource.org/licenses/AGPL-3.0 AGPLv3
 *
 * @link https://docs.madelineproto.xyz MadelineProto documentation
 */
 
use danog\MadelineProto\API;
use danog\MadelineProto\EventHandler;
use danog\MadelineProto\Logger;
use danog\MadelineProto\Settings;
use danog\MadelineProto\Settings\Database\Redis;
 
/*
 * Various ways to load MadelineProto
 */
if (\file_exists('vendor/autoload.php')) {
    include 'vendor/autoload.php';
} else {
    if (!\file_exists('madeline.php')) {
        \copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
    }
    /**
     * @psalm-suppress MissingFile
     */
    include 'madeline.php';
}
 
/**
 * Event handler class.
 */
class MyEventHandler extends EventHandler
{
    /**
     * @var int|string Username or ID of bot admin
     */
    const ADMIN = "danogentili"; // Change this
    /**
     * Get peer(s) where to report errors.
     *
     * @return int|string|array
     */
    public function getReportPeers()
    {
        return [self::ADMIN];
    }
    /**
     * Handle updates from supergroups and channels.
     *
     * @param array $update Update
     *
     * @return void
     */
    public function onUpdateNewChannelMessage(array $update): \Generator
    {
        return $this->onUpdateNewMessage($update);
    }
    /**
     * Handle updates from users.
     *
     * @param array $update Update
     *
     * @return \Generator
     */
    public function onUpdateNewMessage(array $update): \Generator
    {
        if ($update['message']['_'] === 'messageEmpty' || $update['message']['out'] ?? false) {
            return;
        }
 
        $res = \json_encode($update, JSON_PRETTY_PRINT);
        yield $this->messages->sendMessage(['peer' => $update, 'message' => "<code>$res</code>", 'reply_to_msg_id' => isset($update['message']['id']) ? $update['message']['id'] : null, 'parse_mode' => 'HTML']);
        if (isset($update['message']['media']) && $update['message']['media']['_'] !== 'messageMediaGame') {
            yield $this->messages->sendMedia(['peer' => $update, 'message' => $update['message']['message'], 'media' => $update]);
        }
    }
}
 
$settings = new Settings;
$settings->getLogger()->setLevel(Logger::LEVEL_ULTRA_VERBOSE);
 
// You can also use MySQL or PostgreSQL
// $settings->setDb(new Redis);
 
$MadelineProto = new API('bot.madeline', $settings);
 
// Reduce boilerplate with new wrapper method.
// Also initializes error reporting, catching and reporting all errors surfacing from the event loop.
$MadelineProto->startAndLoop(MyEventHandler::class);

и есть кусок кода для отправки видео

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$sentMessage = yield $MadelineProto->messages->sendMedia([
    'peer' => '@danogentili',   //Тут надо имя своего бота?
    'media' => [
        '_' => 'inputMediaUploadedDocument',
        'file' => 'video.mp4',  //тут путь до файла? Полный путь?
        'attributes' => [
            ['_' => 'documentAttributeVideo', 'round_message' => false, 'supports_streaming' => true]
        ]
    ],
    'message' => '[This is the caption]([url]https://t.me/MadelineProto[/url])',
    'parse_mode' => 'Markdown'
]);
1 Вот куда в пример бота в его код вставить второй кусок кода для отправки видео?

2 Что должно происходить?

3 Файл должен залиться на сервер телеграмм и мне куда-то должны прислать file_id?

Давайте разберем досконально эту тему? Эксперты есть по PHP и по ботам на этом форуме! Помогите новичкам! Всем плюсану за любые подсказки, только простым языком объясняйте, пожалуйста.

Я засунул код, но ошибка... Fatal Error....
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2020, 07:35
Ответы с готовыми решениями:

Давайте разберемся с датами!
Для тех, кто знает как лучше(эффективнее) форматировать дату в запросах. Можно в разных вариациях, как для справочника всем в помощь. ...

Давайте разберемся, почему на загружается ХР
Добрый день! Возможно написал не в том разделе - прошу переместить. Попробую описать ситуацию. Имелось два компьютера: 1. (Основной)...

Windows 8: Error code: 0x0000005d Давайте разберемся!
При старте, Windows 8 и WinPE 4.х, тупо проверяют ЦП/МП на кошерность:). Если всё Гуд, ОС стартует, чихая на BIOS и BCD(проверено). Если же...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.10.2020, 07:35
Помогаю со студенческими работами здесь

Давайте раз и навсегда разберемся с получением данных с COM порта
Я прочитал уже около 20 форумов и блогов и везде все профессора пишут о том как подключиться к COM порту и как отправить на него данные, но...

Что случилось с HDD? Профи, все сюда! Давайте разберёмся
Приятель принес ноут, сказал: &quot;Тормозит&quot;! Правда, ну он очень долго запускался, посмотрел, что там много не нужных программ! Вобщем не...

Программа пишущая комментарии и код по комментариям (полезно всем новичкам)
Здравствуйте. Думаю эта программа поможет всем. Закопавшись в литературе и обнаружив, что вобщем кодить стало не так просто как раньше,...

я думаю будет полезно для начинающих
Нашел ссылку по Яше и его работе думаю для начинающих будет полезно ссылка тут Апдейты, проверка региона Анализ сайта Анализ...

Какие примеры задач полезно будет решить для освоения С++
Можете накидать мне задач которые помогут мне розобраться в основных нюансах С++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru