簡體   English   中英

VK 的機器人在私人消息中回答,而不是在對話中

[英]The bot for VK answers in a private messages, and not in a conversation

我正在使用回調 Api 創建一個參考機器人,用於在 Python 中的 VK 中聊天。 如果您寫入群組消息,機器人將正常工作。 但是,如果您寫入對話(添加了機器人),它會回復私人消息。 發布的所有閱讀等權利。 據我了解(在互聯網上學習信息),我使用user_id ,而不是chat_id 但我不明白如何正確修復它(

ps 建議機器人在私人消息和對話中都寫,這取決於他們問的地方。

pps這個問題可能看起來很可笑,但是我剛開始研究這個領域,在網上沒有找到答案:-)

機器人本身:

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)

我英語說得不好,所以我為歪曲的翻譯道歉)

使用 Peer_id,而不是 from_id。 (data->object->peer_id) (我使用了 php,但我遇到了類似的問題。這是解決方案)可能是這樣的:

def create_answer (data, token):
   load_modules ()
   user_id = data ['peer_id'] # id source edited
   message, attachment = get_answer (data ['text']. lower ())
   vkapi.send_message (user_id, token, message, attachment)

from_id - 發送消息的人

peer_id - 在其中接收到交易消息。 (對於組,它看起來像 20000005)所以,你將把消息發送到對話(不管是這個 PM 還是與很多人的對話)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM