У меня есть бот для пересылки сообщений из discord в группу и чат VK. я создал приложение, получил его токен тут:
https://oauth.vk.com/authorize?client_id=ТУТ АЙДИ&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=notify,friends,audio,video,stories,status,notes,menu,pages,wall,photos,ads,offline,messages,docs,phone_number,notifications,email,stats,groups&response_type=token&v=5.131
выставил все scopes чтобы не было ошибок, и при загрузке и отправке изображения я получаю ошибку:
[15] Access denied: no access to call this method. It cannot be called with current scopes.
вот мой код:
async def post_to_vk(self, message: discord.Message):
"""Публикация сообщения в группу ВК и чат"""
try:
attachments = []
# Обработка изображений
if message.attachments:
for attachment in message.attachments:
if any(attachment.filename.lower().endswith(ext) for ext in ['.jpg', '.jpeg', '.png']):
try:
# Скачиваем файл
await attachment.save(attachment.filename)
# Загружаем фото на сервер ВК
photo = self.upload.photo_wall(
attachment.filename,
user_id=self.vk.users.get()[0]['id'] # Получаем ID пользователя
)[0]
# Формируем строку для прикрепления
attachments.append(f"photo{photo['owner_id']}_{photo['id']}")
except Exception as photo_error:
print(f"Ошибка при загрузке фото: {photo_error}")
traceback.print_exc()
finally:
# Удаляем временный файл
if os.path.exists(attachment.filename):
os.remove(attachment.filename)
# Публикуем в группу
try:
self.vk.wall.post(
owner_id=-VK_GROUP_ID, # Минус для групп
message=message.content,
attachments=','.join(attachments) if attachments else None
)
except Exception as wall_error:
print(f"Ошибка при публикации на стену: {wall_error}")
# Отправляем в чат
try:
self.vk.messages.send(
chat_id=VK_CHAT_ID,
message=message.content,
attachment=','.join(attachments) if attachments else None,
random_id=0
)
except Exception as message_error:
print(f"Ошибка при отправке в чат: {message_error}")
except Exception as e:
print(f"Общая ошибка при публикации в ВК: {e}")
traceback.print_exc()