我无法从Microsoft Teams Bot向其他用户发送消息

时间:2019-04-08 10:48:42

标签: python botframework

无法从Microsoft Teams中的漫游器向其他用户发送消息。尽管所有参数都是从数据库传递的,但它会不断向我发送消息。

Anton:数据库表的名称

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)

1 个答案:

答案 0 :(得分:0)

您要发送的是proactive message。通常,漫游器仅通过在用户转弯时向该用户发送消息时才向该用户发送消息来起作用。由于您希望在转弯之外向用户发送消息,以响应该用户向机器人发送消息以外的其他消息,因此该消息被认为是主动消息。因此,您不应该尝试使用转弯上下文发送消息,因为该上下文适用于漫游器和向其发送消息的用户之间的转弯。

而不是发送这样的消息:

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)

当然,您应该存储查询的结果,因此不必一次又一次地运行相同的查询。