Короткий ответ: да — полностью отказываться от сторонних сервисов (vkhost) можно, но это не всегда тривиально: для большинства задач серверного скрипта лучше переходить на официальные механизмы (VK ID + официальные токены сообществ или OAuth), а не пытаться получить «бессрочный» пользовательский token любым обходным способом. Ниже — подробные ответы на ваши вопросы и практические рекомендации.
1) Верификация в VK ID для нерезидентов РФ
- Зарегистрироваться в VK ID как пользователь/разработчик можно без российского гражданства. Большая часть базовых возможностей доступна.
- Однако формальности, связанные с «бизнес‑верификацией» (ИНН, документы юридического лица, оформление как ИП/ООО и т.п.), ориентированы на российских резидентов и российскую юрисдикцию — соответственно некоторые опции в кабинете могут быть недоступны или потребуют российские реквизиты.
- Если вам нужна именно «бизнес‑верификация» VK (для получения расширенных прав/подключения платёжных сервисов и т.п.), то для нерезидента получить её сложнее или невозможно без российского ИНН/регистрации. Для простой работы со скриптами такая верификация обычно не нужна.
- Практическая рекомендация: не делайте зависимость скриптов от верификации именно в VK ID. Для автоматизации сообществ используйте права и токены сообщества (см. ниже) — они не требуют ИНН.
2) Регистрация backend‑приложения (тип приложения и redirect URI)
- Для серверного приложения логично регистрировать приложение типа «Web» (Website) в кабинете VK ID / Developer. Это даёт client_id / client_secret и возможность OAuth2 Authorization Code flow.
- Redirect URI: в процессе разработки допустимо использовать localhost (например, http://localhost:3000) — VK позволяет указывать локальные URI для тестов. Для боевой работы redirect URI должен быть публичным и указан в настройках приложения (в целях безопасности OAuth).
- Важное замечание: для автоматической, без‑участной авторизации «по кругу» (когда сервер сам получает токен без участия человека) обычно используются либо:
- community (group) token — создаётся в настройках сообщества и подходит для всех действий сообществом (публикации на стене, работа с сообщениями сообщества, Long Poll / Callback API), либо
- пользовательский токен с параметром offline (чтобы не истекал) — но получение такого токена требует один раз пройти авторизацию через браузер (Authorization Code / Implicit flow) с аккаунтом администратора/оператора.
- Для серверного автоматизированного бэкенда чаще всего правильный путь: публично доступный redirect URI + Authorization Code flow для первого получения токена (или получение токена вручную один раз), а дальше хранить токен и при необходимости обновлять/обновлять по процедурам, либо — предпочтительно — использовать токен сообщества, который проще и безопаснее.
3) Права (scopes) wall, messages и как их получить
- VK имеет набор scope‑прав: wall, groups, photos, offline, messages и т. п. Технически многие из них можно запросить в OAuth, но доступ к scope «messages» для пользовательских токенов ограничен.
- Важно разделять: сообщения пользователя (доступ к личным диалогам user→user) и сообщения сообщества (бот‑сообщения, диалоги сообщества). Для задач по автоматизации сообществ:
- Правильный и официальный путь — работать через токен сообщества (community token) и Messaging API / Bots API, а не через пользовательский messages scope. Сообщественный токен даёт доступ к сообщениям сообщества, управлению стеной (посты от имени сообщества) и Long Poll/Callback API. Токены сообществ обычно постоянные (или фактически долгоживущие) и выдаются в настройках сообщества администратором.
- Для доступа к «messages» в пользовательском токене: VK выдаёт этот scope очень осторожно и только для доверенных/модерируемых приложений (партнёрские интеграции). Обычным приложениям и скриптам этот scope либо недоступен, либо выдаётся только после модерации (и обычно при наличии веских оснований и документов).
- Что считается «основанием» для выдачи расширенных прав:
- Наличие законного, правомерного кейса (например, CRM‑интеграция с согласия пользователей, официальный сервис поддержки клиентов через группу и т. п.).
- Политика конфиденциальности и правила обработки пользовательских данных, техническая документация, демонстрация работы сервиса и, возможно, юридические документы (для компании — регистрационные и т. п.).
- Прохождение модерации / обращение в техподдержку VK с описанием кейса. Для сообщений о пользователях обычно требуется подтверждение, что вы будете соблюдать правила и получите согласие пользователей.
- Практическая рекомендация: если вы автоматизируете работу сообществ — используйте community tokens + Callback API / Bots API. Для операций со стеной и сообщениями сообщества этого достаточно и не требует обращения в поддержку. Если вам всё же нужно управлять личными сообщениями пользователей — готовьтесь к официальному обращению в поддержку VK с полным описанием и документами; в реальности такие права VK даёт редко.
Дополнительные замечания по безопасности и блокировкам
- Причина «подозрения на взлом» при использовании vkhost и подобных сервисов часто в том, что логины/токены используются с множества IP/гео/устройств, либо сервисы работают через чужие учётные данные — это триггер для систем защиты VK. Официальный OAuth‑поток и использование токенов сообществ снижают эти риски.
- Рекомендуется:
- Создать отдельный админ‑аккаунт/оператора для автоматизации (с включённой двухфакторной аутентификацией) и один раз пройти авторизацию официальным OAuth.
- Использовать токены сообществ, а не «вечные» пользовательские токены, с которыми работают сторонние сервисы.
- Развернуть сервер на публичном домене и зарегистрировать корректный redirect URI; хранить client_secret/токены в защищённом месте.
- Если нужны расширенные права — подготовить документацию и обращаться в поддержку/модерацию VK.
Краткий план действий для перехода с vkhost:
1. Убедитесь, что все операции выполняются через токен сообщества (создать/получить в настройках группы).
2. Включите в сообществе «Сообщения сообщества» и настроите Callback API или Long Poll для получения событий.
3. Для публикаций на стене используйте метод wall.post от имени сообщества (owner_id = -group_id).
4. Если всё же нужен пользовательский OAuth (для некоторых персональных операций), зарегистрируйте Web‑app в VK ID и выполните Authorization Code flow с redirect на ваш сервер; запросите необходимые scopes (offline, groups, wall и т. п.), но учтите ограничения по messages.
5. При необходимости расширить права — подготовьте описание кейса и документы и обратитесь в поддержку VK.
Если хотите, могу:
- посмотреть конкретно, какие права вам нужны по функционалу скриптов (набор методов), и подсказать точную конфигурацию токенов/настроек сообщества;
- назвать последовательность API‑вызовов (примерный код) для получения/использования community token и Callback API.