{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreieoj2hwmsrfd74jhw66amb6anyweomu7p6yzym6eailoosrzzzr3q",
    "uri": "at://did:plc:l23ye5wi2szry5t2rspeo5b2/app.bsky.feed.post/3mjopfvt6pxr2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreibkezrimn6codyakpvfiydkbs4pjs664czgs2u6cq5y2uho7xabvm"
    },
    "mimeType": "image/png",
    "size": 63764
  },
  "description": "Скрипт на Python проверяет участников чата Telegram и выявляет тех, кто использует неофициальные клиенты через API.",
  "path": "/kak-proverit-vash-chat-v-telegram-na-nalichie-polzovatelei-s-neofitsialnymi-prilozheniiami/",
  "publishedAt": "2026-04-17T10:23:39.000Z",
  "site": "https://blog.themarfa.name",
  "tags": [
    "Python",
    "@BotFather",
    "https://my.telegram.org/apps",
    "@нет_username"
  ],
  "textContent": "Telegram недавно добавил предупреждение о том, что ваш собеседник пользуется неофициальным мессенджером. Общение с таким человеком может привести к потенциальной утечке переписки.\n\nНо как узнать заранее, с кем стоит общаться, а с кем — нет? Если вы являетесь администратором чата, то вы можете легко проверить его участников на «чистоту» мессенджера.\n\nДля начала работы вам понадобится установить Python для своей операционной системы, создать любого бота через @BotFather и получить для него токен.\n\nЗатем откройте терминал и выполните в нём команду:\n\n\n    pip install https://github.com/KurimuzonAkuma/kurigram/archive/dev.zip --force-reinstall\n\nТеперь получите данные для подключения по API по этой ссылке https://my.telegram.org/apps. Вам нужны данные из полей **App api_id** и **App api_hash**.\n\nСкопируйте скрипт ниже и сохраните его в файл с расширением .py:\n\n\n    import asyncio\n    from pyrogram.client import Client\n    from pyrogram import raw\n\n\n    async def main() -> None:\n        api_id = ???\n        api_hash = \"??\"\n        bot_token = \"???\"\n        chat = \"???\"\n\n        print(\"Скрипт запущен. Подключение к Telegram...\")\n\n        count_risk = 0\n        processed = 0\n\n        async with Client(\n            \"acc\",\n            bot_token=bot_token,\n            api_id=api_id,\n            api_hash=api_hash,\n            proxy=dict(\n                scheme=\"socks5\",\n                hostname=\"127.0.0.1\",\n                port=1080,\n            )\n        ) as app:\n            print(\"Авторизация прошла успешно.\")\n\n            # Получаем информацию о чате\n            chat_info = await app.get_chat(chat)\n            total_members = getattr(chat_info, \"members_count\", None)\n\n            if total_members is not None:\n                print(f\"Всего участников в чате: {total_members}\")\n            else:\n                print(\"Не удалось получить общее количество участников чата.\")\n\n            print(\"Начинаю проверку участников...\\n\")\n\n            async for member in app.get_chat_members(chat):\n                if member.user.is_bot:\n                    continue\n\n                processed += 1\n\n                name = \" \".join(\n                    x for x in [member.user.first_name, member.user.last_name] if x\n                ).strip() or str(member.user.id)\n\n                username = f\"@{member.user.username}\" if member.user.username else \"@нет_username\"\n\n                try:\n                    peer = await app.resolve_peer(member.user.id)\n                    full = await app.invoke(\n                        raw.functions.users.GetFullUser(id=peer)\n                    )\n\n                    await asyncio.sleep(3)\n\n                    risk = bool(getattr(full.full_user, \"unofficial_security_risk\", False))\n\n                    if risk:\n                        count_risk += 1\n                        print(f\"{name} {username}\")\n\n                except Exception as e:\n                    print(f\"Ошибка для {member.user.id} ({name}): {e}\")\n\n                # Вывод процента проверки\n                if total_members:\n                    percent = processed / total_members * 100\n                    print(f\"Проверено: {processed}/{total_members} ({percent:.1f}%)\")\n\n            print(f\"\\nГотово. Найдено не чистых пользователей: {count_risk}\")\n\n\n    if __name__ == \"__main__\":\n        try:\n            asyncio.run(main())\n        except (SystemExit, KeyboardInterrupt):\n            print(\"bye\")\n\nВ скрипте вам нужно поправить следующие данные:\n\n  * api_id — указать ваш api_id\n  * api_hash — указать ваш api_hash\n  * bot_token — указать ваш bot_token\n  * chat — указать юзернейм чата для парсинга (без @)\n  * proxy — указать данные для подключения через socks5 Proxy\n\n\n\nТеперь просто выполните этот файл через терминал. Если всё сделано правильно, то начнётся парсинг участников.\n\nЕсли скрипт найдёт участников, которые используют неофициальный мессенджер, он отобразит их имя. Если таких участников нет, то их просто не покажет.",
  "title": "Как проверить ваш чат в Telegram на наличие пользователей с неофициальными приложениями",
  "updatedAt": "2026-04-17T10:23:39.190Z"
}