Skip to content

群聊时并不会调用相关的MyCallbackHandler方法 #3

@youcai922

Description

@youcai922

我按照演示代码搭建了相关的程序,在单聊时stream模式能够正常接收和发送消息,但是群聊时@机器人,并不会调用回调函数,全量相关代码如下

定义事件处理器

class MyEventHandler(dingtalk_stream.EventHandler):
async def process(self, event: dingtalk_stream.EventMessage):
print(event.headers.event_type, event.headers.event_id, event.headers.event_born_time, event.data)
return AckMessage.STATUS_OK, 'OK'

class MyCallbackHandler(dingtalk_stream.ChatbotHandler):
def init(self):
super(dingtalk_stream.ChatbotHandler, self).init()

async def process(self, callback: dingtalk_stream.CallbackMessage):
    print(callback.headers.topic, callback.data)
    incoming_message = dingtalk_stream.ChatbotMessage.from_dict(callback.data)
    # 文本消息回复
    # text = incoming_message.text.content.strip()
    # self.reply_text(text, incoming_message)
    # Markdown消息回复
    text = 'echo received message:\n'
    text += '\n'.join(['> 1. %s'%i for i in incoming_message.text.content.strip().split('\n')])
    self.reply_markdown('dingtalk-tutorial-python', text, incoming_message)
    return AckMessage.STATUS_OK, 'OK'

启动钉钉Stream客户端

def start_dingtalk_client():
credential = dingtalk_stream.Credential(APP_KEY, APP_SECRET)
client = dingtalk_stream.DingTalkStreamClient(credential)
#事件
client.register_all_event_handler(MyEventHandler())
#消息接收
client.register_callback_handler(dingtalk_stream.ChatbotMessage.TOPIC, MyCallbackHandler())
client.start_forever()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions