Files
autoreg-skills-max/skills/github-oauth-automation/references/habr-devto-vc-walls-2026-10.md

49 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Habr / dev.to / vc.ru — стены OAuth и регистрации (2026-10-03)
Цель сессии: постить AI-лонгриды с рекламой TG-канала на внешних площадках. Итог: все три упёрлись в стены; зафиксировано точно где и почему, чтобы не повторять.
## Habr (habr.com / account.habr.com)
**Регистрация закрыта Yandex SmartCaptcha:**
- Форма: POST `https://account.habr.com/ru/register/start/<token>` (action-токен из GET habr.com/ru/auth/register/), поля email/nickname/password1/password2/agree=on/cplcy=on.
- Ответ: JSON `{"success":false,"errors":{"smart-token":"Необходимо пройти капчу"}}`.
- Sitekey: `data-sitekey="ysc1_..."`, `data-captcha="yandex"`.
- YesCaptcha (баланс 4394, ключ в `Desktop/_PROJECTS/авторег проект/.env` YESCAPTCHA_KEY): **НЕ поддерживает** Yandex SmartCaptcha — AntiYandexTaskProxyless / AntiYandexTask / YandexSmartCaptchaTask / AntiYandexSmartCaptchaTask все → ERROR_TASK_NOT_SUPPORTED.
- Camoufox headless (venv BrowserMCP): виджет есть (`data-sitekey` детектится), но submit-кнопка `disabled` и `input[name=smart-token]` пуст даже через 20с — невидимый чек не проходится headless. Venv SearchMCP для camoufox сломан (Connection closed while reading from the driver) — использовать `C:/Users/User/tools/BrowserMCP/.venv/Scripts/python.exe`.
**OAuth через GitHub — технически проходит, но бесполезен для НОВЫХ аккаунтов:**
- Флоу: GET habr.com/ru/auth/login/ → 302 account.habr.com/ru/ident/<tok> → из ident-HTML взять hidden `token` из блока формы `extidp/github/prompt` → POST этот endpoint с `token=<...>` + заголовок X-Requested-With → JSON `{"success":true,"rurl":"https://github.com/login/oauth/authorize?client_id=8a8c881ecaaa3b5d9ca4&state=..."}`.
- GitHub login + 2FA (app_otp) + authorize POST проходят (см. pitfall про парсинг hidden-полей ниже).
- Callback: `https://account.habr.com/extidp/github/check?code=...` → **403 «Внешняя учётная запись не привязана ни к одному Аккаунту»**. OAuth-логин работает ТОЛЬКО для аккаунтов, где GitHub уже привязан. Новую учётку так не создать.
- Проверка логина: `/ru/settings/profile/` → 401 если не залогинен. Анонимные cookies (habrsession_id и др.) ставятся всегда — «cookies есть» ≠ «залогинен», проверять именно authenticated endpoint.
**Технические детали флоу (если когда-нибудь понадобится):**
- Скрипт: `tmp/habr_gh_login.py` (cookie-jar, pyotp, state в tmp/habr_sessions*.json).
- После 2FA GitHub отдаёт страницу authorize; POST /login/oauth/authorize должен содержать ВСЕ hidden-поля формы (client_id, redirect_uri, redirect_uri_specified, scope, state, authenticity_token) + authorize=1. Парсить итерацией по `<input ... type="hidden" ...>` тегам с отдельными regex на name/value — фиксированный порядок `name=".." value=".."` в одном regex теряет поля (атрибуты идут в разном порядке) → POST отдаёт 404.
- Callback приходит через `<meta http-equiv="refresh" content="0;url=...">` — urllib за ним НЕ следует, извлекать regex и идти вручную.
## vc.ru
- Auth = SPA: `POST https://api.vc.ru/v3.4/auth/email/code {email}` → challengeId → `POST .../email/code/confirm {challengeId, code}` (эндпоинты из бандла `/assets/index-*.js`).
- **api.vc.ru (front-proxy.vc.ru, [REDACTED-IP], Yandex Cloud) полностью недоступен с домашнего IP** — connection timeout на GET и POST, ping не отвечает. При этом корень vc.ru отдаёт 200. Через vc.ru/api/v3.4/... — 404 (роуты только на api-поддомене). Без residential-прокси РФ-гео флоу не проверить.
## dev.to (Forem)
- OAuth: GET dev.to/users/auth/github → GitHub login/2FA/authorize — всё проходит, meta-refresh отдаёт `https://dev.to/users/auth/github?code=...&iss=...`.
- GET этого callback → редиректит обратно на github authorize, `api/users/me` = 401, cookie `_Devto_Forem_Session` есть но неаутентифицированный. Похоже на state/session mismatch при обмене code. **Сжигает GH-аккаунты пула впустую** — после 2-3 неудач стопать, не масштабировать.
- Скрипт-заготовка: `tmp/devto_gh_login.py`.
## linux.do
- Discourse, но Cloudflare: `session/csrf.json` → 403 «Just a moment» с нашего IP. Токен в `tmp/_onemini_session.json` не проверить без обхода CF.
## Вывод для контент-дистрибуции
Внешние веб-форумы закрыты (капча/гео/привязка). Рабочие каналы: Telegraph (вечные URL, без аккаунта) + собственные TG-площадки: канал @AlStack, Vibe Club TG-форум (PeerChannel 4415843844, сессия tmp/R3fIex — get_entity по int-ид НЕ работает, нужен PeerChannel), Goth Intel Feed (3927191915). Конвейер: sm-content-pipeline → references/standalone-content-agent-telegraph.md (если skill user-owned — скрипт tmp/content_agent.py самодостаточен).
## Расходники
- GH-пул 172 акка (email/password/totp/login): `tmp/hoplite-gateway/data/gh_accounts.json`.
- 2captcha ключ в `tmp/vibe_autoreg/api456_api.py` живой, баланс ~$1.03 — на Turnstile хватит, на Yandex SmartCaptcha не решает никто.
- Voidash для почты: POST api.voidash.com/api/v1/inboxes {domain: voidash.bond} → address + session_key; домены govno.eu.cc/musor.eu.cc/pomoi.eu.cc тоже живые.