Как узнать активность человека в telegram?

Ссылка скопирована
PHP
1 ответ

Здравствуйте!

Я пытаюсь создать Telegram-бота на PHP, который позволяет получить информацию о последней активности пользователя в Telegram. Я уже создал бота, получил его токен и добавил его в группу в качестве администратора. Однако я не могу понять, как получить информацию о последней активности пользователя.

Попытался использовать методы "getChatMembers" и "getChatMember", но не получил желаемых результатов. userID просто не выводятся и не сохраняются.

На сколько я знаю, телеграмм даёт возможность ботам с правами администраторов, получать userID всех участников группы/канала/чата. Но вот как это реализовать, информации не нашёл. (userID нужен дабы проверять последнюю активность человека в телеграмм).

Можете ли вы поделиться примером кода или объяснить, как правильно получить информацию о последней активности пользователя в Telegram с помощью Telegram-бота на PHP?

Заранее спасибо за вашу помощь!

Ниже предоставлен кусок кода, с помощью которого пытался извлечь userID людей, дабы проверить lastActivityDate:

elseif (is_numeric($message)) {     file_put_contents($daysFile, $message);      $parsedLink = file_get_contents($linkFile);     $channelLink = trim($parsedLink);  // Удаляем лишние пробелы и переносы строк      $channelUsername = '@' . ltrim(parse_url($channelLink, PHP_URL_PATH), '/'); // Преобразовываем ссылку     $channelLink = 'https://api.telegram.org/bot' . TOKEN . '/getChat?chat_id=' . urlencode($channelUsername); // Отправляем запрос, и получаем ID чата в который был добавлен бот.      $chatInfo = sendTelegram('getChat', ['chat_id' => $channelUsername]);     $chatId = $chatInfo['result']['id'];     file_put_contents($chatIdFile, $chatId);          if(isBotAdmin($chatId, TOKEN)){          // Получаем общее количество подписчиков на канале         $getChatMembersCountResponse = sendTelegram('getChatMembersCount', ['chat_id' => $channelUsername]);         $totalSubscribers = $getChatMembersCountResponse['result'];          // Получаем количество администраторов и ботов на канале         $getChatAdministratorsResponse = sendTelegram('getChatAdministrators', ['chat_id' => $channelUsername]);         $adminsCount = count($getChatAdministratorsResponse['result']);          // Получаем название канала         $channelName = basename($channelUsername);          $membersResponse = sendTelegram('getChatMembers', ['chat_id' => $chatId]);         $members = $membersResponse['result'];          $userIDs = [];         foreach ($members as $member) {             $userId = $member['user']['id'];             $userIDs[] = $userId;             // Получение информации о последней активности пользователя             $chatMember = sendTelegram('getChatMember', ['chat_id' => $chatId, 'user_id' => $userId]);             $lastActivityDate = $chatMember['result']['last_activity_date'];              echo "User ID: $userId, Last Activity: $lastActivityDaten";         }          $userIDsFile = 'user_ids.txt';         file_put_contents($userIDsFile, implode("n", $userIDs));          $method = 'sendMessage';         $send_data = [             'text' => "Канал: $channelNamen" .                     "Всего подписчиков: $totalSubscribersn" .                     "Администраторы: $adminsCountn" .                     "Чат-идентификатор: $chatId",             'reply_markup' => [                 'resize_keyboard' => true,                 'keyboard' => [                     [                         ['text' => '️ Удалить'],                         ['text' => ' Вернуться назад']                     ]                 ]             ]         ];                       } else {         $method = 'sendMessage';         $send_data = [             'chat_id' => $data['chat']['id'],             'text' => '❗ Бот не является администратором в данной группе! Сначала добавьте его в свою групу/канал/чат, либо назчачьте администратором!'         ];     }  }

elseif (is_numeric($message)) { file_put_contents($daysFile, $message); $parsedLink = file_get_contents($linkFile); $channelLink = trim($parsedLink); // Удаляем лишние пробелы и переносы строк $channelUsername = '@' . ltrim(parse_url($channelLink, PHP_URL_PATH), '/'); // Преобразовываем ссылку $channelLink = 'https://api.telegram.org/bot' . TOKEN . '/getChat?chat_id=' . urlencode($channelUsername); // Отправляем запрос, и получаем ID чата в который был добавлен бот. $chatInfo = sendTelegram('getChat', ['chat_id' => $channelUsername]); $chatId = $chatInfo['result']['id']; file_put_contents($chatIdFile, $chatId); if(isBotAdmin($chatId, TOKEN)){ // Получаем общее количество подписчиков на канале $getChatMembersCountResponse = sendTelegram('getChatMembersCount', ['chat_id' => $channelUsername]); $totalSubscribers = $getChatMembersCountResponse['result']; // Получаем количество администраторов и ботов на канале $getChatAdministratorsResponse = sendTelegram('getChatAdministrators', ['chat_id' => $channelUsername]); $adminsCount = count($getChatAdministratorsResponse['result']); // Получаем название канала $channelName = basename($channelUsername); $membersResponse = sendTelegram('getChatMembers', ['chat_id' => $chatId]); $members = $membersResponse['result']; $userIDs = []; foreach ($members as $member) { $userId = $member['user']['id']; $userIDs[] = $userId; // Получение информации о последней активности пользователя $chatMember = sendTelegram('getChatMember', ['chat_id' => $chatId, 'user_id' => $userId]); $lastActivityDate = $chatMember['result']['last_activity_date']; echo "User ID: $userId, Last Activity: $lastActivityDaten"; } $userIDsFile = 'user_ids.txt'; file_put_contents($userIDsFile, implode("n", $userIDs)); $method = 'sendMessage'; $send_data = [ 'text' => "Канал: $channelNamen" . "Всего подписчиков: $totalSubscribersn" . "Администраторы: $adminsCountn" . "Чат-идентификатор: $chatId", 'reply_markup' => [ 'resize_keyboard' => true, 'keyboard' => [ [ ['text' => '️ Удалить'], ['text' => ' Вернуться назад'] ] ] ] ]; } else { $method = 'sendMessage'; $send_data = [ 'chat_id' => $data['chat']['id'], 'text' => '❗ Бот не является администратором в данной группе! Сначала добавьте его в свою групу/канал/чат, либо назчачьте администратором!' ]; } }

Дополнительно:

Ответы:

Вероятно, стоит учесть, что пользователь может скрыть свою последнюю активность и сделать что-ли isset проверку на такой элемент в ответе.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ольга Сеть Ответ

Для того чтобы узнать активность человека в Telegram, можно использовать несколько способов. Одним из самых простых способов является проверка времени последнего онлайна пользователя в мессенджере.

Для этого необходимо зайти в чат с этим человеком в Telegram и нажать на его профиль. После этого появится информация о пользователе, включая время последнего посещения.

Если вы хотите узнать активность пользователя без его участия, то можно воспользоваться сторонними приложениями или сервисами, которые предоставляют информацию о статусе онлайн пользователей в Telegram. Однако, стоит помнить, что использование таких приложений может нарушать политику конфиденциальности мессенджера.

Также можно попробовать отправить сообщение этому пользователю и посмотреть, когда он его прочтет или ответит. Однако, это не всегда точный способ определения активности, так как пользователь может просто не отвечать на сообщения.

В любом случае, следует помнить о том, что уважение к чужой личной жизни и приватности является важным аспектом в общении в мессенджерах, поэтому стоит быть осторожным при попытках узнать активность другого пользователя в Telegram.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно