diff --git a/classes/VKAPI.php b/classes/VKAPI.php index 38ecfe8..71712fc 100644 --- a/classes/VKAPI.php +++ b/classes/VKAPI.php @@ -292,10 +292,7 @@ class VKAPI try { $result = $this->wallPost($numericGroupId, $messageWithPhotos, []); - $firstError = $uploadErrors[0] ?? 'неизвестная ошибка'; - $result['warning'] = 'Фото добавлены как ссылки — VK отказал в загрузке (' . $firstError . '). ' - . 'Проверьте, что ключ сообщества создан с правом «Фотографии» и принадлежит ИМЕННО той группе, в которую вы постите. ' - . 'Если используете пользовательский токен — у него должны быть права wall, photos, groups.'; + $result['warning'] = 'Фото добавлены как ссылки. Метод photos.getWallUploadServer не работает с токеном сообщества (это ограничение VK API: error 27 «group auth» или error 15 «access denied»). Чтобы фото прикреплялись как вложения, нужен ПОЛЬЗОВАТЕЛЬСКИЙ access token с правами wall, photos, groups, offline.'; return $result; } catch (Exception $e) { throw new RuntimeException('Ошибка постинга: ' . $e->getMessage() . '. Также нет прав на загрузку фото.'); diff --git a/index.php b/index.php index b53dfd0..0e1d7e2 100644 --- a/index.php +++ b/index.php @@ -625,21 +625,33 @@ foreach ($channels as $ch) {
- Как получить токен сообщества (рекомендуется)? -
    -
  1. Откройте свою группу в VK → Управление
  2. -
  3. В меню справа выберите «Работа с API» → вкладка «Ключи доступа»«Создать ключ»
  4. -
  5. Включите права: Управление сообществом, Сообщения сообщества, Фотографии, Стена (Wall)
  6. -
  7. Скопируйте созданный ключ и вставьте его в поле выше → «Сохранить»
  8. + Как получить access token для VK? +

    VK API имеет ограничение: загружать фото на стену может только пользовательский токен. Токен сообщества постит только текст (фото уйдут как ссылки).

    + +

    Вариант A — пользовательский токен через Kate Mobile (рекомендуется, фото работают)

    +
      +
    1. Перейдите по ссылке (откроется страница авторизации VK):
      + oauth.vk.com/authorize?client_id=2685278&scope=photos,wall,groups,offline&... +
    2. +
    3. Нажмите «Разрешить» от лица Kate Mobile
    4. +
    5. В адресной строке после # найдите access_token=... — скопируйте значение до символа &
    6. +
    7. Вставьте в поле выше → «Сохранить»
    -

    - Важно: ключ сообщества бессрочный и не блокируется VK. Он постит и грузит фото только в свою группу — для нескольких групп создайте отдельный ключ в каждой. +

    + Скоуп offline делает токен бессрочным. Kate Mobile (app_id=2685278) пока не заблокирован VK, в отличие от VK Admin.

    -

    - Если фото уходят как ссылки (предупреждение в архиве) — значит у ключа нет права Фотографии, или ключ создан в другой группе. Удалите ключ и создайте заново в той же группе, в которую постите, отметив права: Управление, Стена, Фотографии, Сообщения сообщества. + +

    Вариант B — токен сообщества (только текст, без фото)

    +
      +
    1. Группа VK → УправлениеРабота с APIСоздать ключ
    2. +
    3. Права: Управление, Стена, Фотографии, Сообщения сообщества
    4. +
    5. Вставьте ключ в поле выше → «Сохранить»
    6. +
    +

    + Бессрочный, но из-за ограничения VK photos.getWallUploadServer не работает с такими токенами — фото уходят ссылками в тексте.

    -

    - Старый способ через vkhost.github.io / VK Admin сейчас не работает — VK заблокировал это приложение (ошибка [8] Application is blocked). +

    + Старый способ через vkhost.github.io (VK Admin) больше не работает — VK заблокировал это приложение ([8] Application is blocked).