@TakeThisGear

Как отправлять голосовые сообщения в беседу боту?

Хочу чтобы бот озвучивал сообщения и отправлял их в беседу пример!
Пользователь: Привет
Бот гс: Привет
Хочу использовать gtts. При использовании такого кода:
tts = gTTS(text=answer, lang='ru', lang_check=True)
                    name = 'voice.ogg'
                    tts.save(name)

                    vk_session.method('messages.send', {'chat_id': id, 'attachment': d})
                    print(9)
                    a = vk_session.method('docs.getUploadServer', {'type': 'audio_message', 'chat_id': id})
                    print(1)
                    b = requests.post(a['upload_url'], files = {'file': open('/home/TakeThisGear/myhome/voice.ogg', 'rb')}).json()
                    print(2)
                    c = vk_session.method('docs.save', {'file': b['file']})[0]
                    d = 'doc{}_{}'.format(c['owner_id'], c['id'])
                    vk_session.method('messages.send', {'chat_id': id, 'attachment': d})

возникает ошибка:
[27] Group authorization failed: method is unavailable with group auth.

Ключ менял и смотрел разрешения.
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
@defriz
люблю js
Ошибка: этот метод не доступен с аутентификацией группы, т.е. ключ доступа группы не подходит, нужно получить ключ доступа пользователя.
Сделать это можно по этой ссылке https://vkhost.github.io/, используя метод Kate Mobile.

После этого Вы можете выполнять методы, которым нужен ключ доступа пользователя.
Пример:
tts = gTTS(text=answer, lang='ru', lang_check=True)
                    name = 'voice.ogg'
                    tts.save(name)

                    vk_session.method('messages.send', {'chat_id': id, 'attachment': d})
                    print(9)
                    a = user_session.method('docs.getUploadServer', {'type': 'audio_message', 'chat_id': id})
                    print(1)
                    b = requests.post(a['upload_url'], files = {'file': open('/home/TakeThisGear/myhome/voice.ogg', 'rb')}).json()
                    print(2)
                    c = user_session.method('docs.save', {'file': b['file']})[0]
                    d = 'doc{}_{}'.format(c['owner_id'], c['id'])
                    vk_session.method('messages.send', {'chat_id': id, 'attachment': d})
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы