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) {
VK API имеет ограничение: загружать фото на стену может только пользовательский токен. Токен сообщества постит только текст (фото уйдут как ссылки).
+ +Вариант A — пользовательский токен через Kate Mobile (рекомендуется, фото работают)
+# найдите access_token=... — скопируйте значение до символа &- Важно: ключ сообщества бессрочный и не блокируется VK. Он постит и грузит фото только в свою группу — для нескольких групп создайте отдельный ключ в каждой. +
+ Скоуп offline делает токен бессрочным. Kate Mobile (app_id=2685278) пока не заблокирован VK, в отличие от VK Admin.
- Если фото уходят как ссылки (предупреждение в архиве) — значит у ключа нет права Фотографии, или ключ создан в другой группе. Удалите ключ и создайте заново в той же группе, в которую постите, отметив права: Управление, Стена, Фотографии, Сообщения сообщества. + +
Вариант B — токен сообщества (только текст, без фото)
+
+ Бессрочный, но из-за ограничения VK photos.getWallUploadServer не работает с такими токенами — фото уходят ссылками в тексте.
- Старый способ через vkhost.github.io / VK Admin сейчас не работает — VK заблокировал это приложение (ошибка [8] Application is blocked).
+
+ Старый способ через vkhost.github.io (VK Admin) больше не работает — VK заблокировал это приложение ([8] Application is blocked).