Skip to content

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

Open
@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions