Задать вопрос

Как отправить фото в группу и чат vk?

У меня есть бот для пересылки сообщений из 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()
  • Вопрос задан
  • 103 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы