Мне нужно отправить личное сообщение с вложением нескольким подписчикам группы через VK API, используя токен этой группы. Чтобы не загружать один и тот же файл каждому пользователю, я хочу загрузить его единожды перед началом отправки сообщений.
Чтобы загрузить его, мне нужно получить URL для загрузки методом docs.getMessagesUploadServer:
$response = $vk->docs()->getMessagesUploadServer($groupToken, [
'type' => 'doc',
'peer_id' => '-'.$groupId
]);
Минус добавляю перед peer_id в соответствии с руководством метода
docs.getMessagesUploadServer. Но получаю при этом ошибку: "Can't send messages for users without permission". И не понятно, о каком пользователе идет речь в тексте ошибки, если тут используется только токен группы и id группы. При создании токена выставил все возможные права. $groupId соответствует той группе, от которой токен.
Пробовал то же самое без использования SDK, прямыми запросами, эффект тот же.
Не понимаю, какому пользователю надо разрешить отправку, если я еще ничего не отправляю? Только получаю адрес сервера для загрузки.
И еще не понимаю, зачем этому методу peer_id, ведь аналогичный метод для загрузки фото его не требует. Тем более, что токен уже и так сам по себе указывает на нужную группу.