我无法从Microsoft Team b向其他用户发送消息

2024-04-19 12:47:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在Microsoft团队中,无法从bot向其他用户发送消息。它不断地向我发送消息,尽管所有参数都是从数据库传递的。你知道吗

数据库表的名称

async def create_reply_activity2(text) -> Activity:
    return Activity(
        type=ActivityTypes.message,
        channel_id=Anton.query.all()[0],
        conversation=Anton.query.all()[1],
        recipient=Anton.query.all()[3],
        from_property=Anton.query.all()[2],
        text=text,
        service_url=Anton.query.all()[4])

resp = await create_reply_activity2("yo.")
    await context.send_activity(resp)

Tags: text数据库消息botcreateactivityallawait
1条回答
网友
1楼 · 发布于 2024-04-19 12:47:04

您要做的是发送一个proactive message。通常情况下,机器人程序只在用户向机器人程序发送消息时才向该用户发送消息,这就是所谓的回合。由于您希望向回合外的用户发送消息,以响应该用户向bot发送消息以外的其他消息,因此该消息被认为是主动的。因此,您不应该尝试使用turn上下文发送消息,因为该上下文适用于bot和发送消息的用户之间的turn。你知道吗

而不是发送这样的信息:

await context.send_activity(resp)

你应该发送这样的信息:

credentials = MicrosoftAppCredentials(APP_ID, APP_PASSWORD)
connector = ConnectorClient(credentials, base_url=context.activity.service_url)
connector.conversations.send_to_conversation(Anton.query.all()[1].id, resp)

当然,您应该存储查询的结果,这样就不必反复运行同一个查询。你知道吗

相关问题 更多 >