Я создаю эталонного бота для общения в ВК в Python с помощью Callback Api. Бот корректно работает, если писать в групповые сообщения. Однако, если вы пишете в беседу (в которую добавлен бот), он отвечает на личные сообщения. Все права на чтение, эт c. выпущен. Насколько я понял (изучая информацию по инте rnet), я использую user_id
, а не chat_id
. Но я так и не понял, как правильно исправить (
ps Желательно, чтобы бот писал и в приват, и в беседу смотря где спрашивают.
pps наверное вопрос кажется смешным, но я только начал изучать эту область, и не нашел ответа на net: -)
Сам бот:
import vk
import random
import messageHandler
@ app.route ('/', methods = ['POST'])
def processing ():
data = json.loads (request.data)
if 'type' not in data.keys ():
return 'not vk'
if data ['type'] == 'confirmation':
return confirmation_token
elif data ['type'] == 'message_new':
messageHandler.create_answer (data ['object'] ['message'], token)
return 'ok'
«Ответчик» :
import importlib
from command_system import command_list
def load_modules ():
# path from the working directory, it can be changed in the application settings
files = os.listdir ("mysite / commands")
modules = filter (lambda x: x.endswith ('. py'), files)
for m in modules:
importlib.import_module ("commands." + m [0: -3])
def get_answer (body):
# Default message if unrecognizable
message = "Sorry, I don't understand you. Write '/ help' to see my commands."
attachment = ''
for c in command_list:
if body in c.keys:
message, attachment = c.process ()
return message, attachment
def create_answer (data, token):
load_modules ()
user_id = data ['from_id']
message, attachment = get_answer (data ['text']. lower ())
vkapi.send_message (user_id, token, message, attachment)
Я не говорю по-английски sh ну так что прошу прощения за кривый перевод)