SantaCash
DOBERMANN
Гай Ричи
MrLoot
Frank Vinci
atmservice

Перенос отправки заявок/логов с Telegram бота в Element

Yakudzza

Пользователь

Yakudzza

Пользователь
Статус
Offline
Регистрация
6 Апр 2025
Сообщения
6
Реакции
0
Покупки через Гарант
0
Продажи через Гарант
0
Здравствуйте.
В связи с агрессивностью Телеграма к серым/черным тематикам, всевозможным блокировкам и вылетам, предоставляю краткий мануал, как настроить бота в Element для приема сообщений/заявок/логов с сайта/сервера и так далее.
Чаще всего придется заменить только одну функцию в коде сайта

1. Переходим на https://app.element.io, и создаем 2 аккаунта, один для себя, второй для бота.
2. Залогинимся под ботом в Element Web, переходим в Settings → Help & About, копируем Access Token
3. Заходим под своим аккаунтом Element, находим бота по его Matrix ID (например @site_bot:matrix.org)
4. Пишем сообщение в аккаунт бота, после заходим в аккаунт бота и открываем этот чат.
5. В настройках чата (Room Info → Settings → Advanced) скопируй Room ID (выглядит так !abc123xyz:matrix.org)
6. Меняем функцию отправки сообщения Telegram на Element на нашем сайте

PHP:
function message_to_element($text)
{
    $accessToken = "твой_access_token_бота";
    $roomId = urlencode("!abc123xyz:matrix.org");
    
    $txnId = time(); // уникальный идентификатор сообщения

    // Формируем URL запроса
    $url = "https://matrix.org/_matrix/client/v3/rooms/$roomId/send/m.room.message/$txnId";

    // Данные для отправки
    $data = [
        "msgtype" => "m.text",
        "body" => $text
    ];

    // Опции запроса
    $options = [
        "http" => [
            "header"  => "Content-type: application/json\r\nAuthorization: Bearer $accessToken\r\n",
            "method"  => "PUT",
            "content" => json_encode($data)
        ]
    ];

    // Выполняем запрос
    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    //echo $result;
}
 
Сверху