团队中的主动消息传递机器人,无需事先提及该机器人

我正在使用Microsoft机器人框架来创建机器人并将其集成到团队中。该漫游器的部分要求包括每天一次主动向用户发送消息。据我了解,我只能向在漫游器之后添加到team

/ groupChat或直接向漫游器发送消息的用户发送消息。我的问题是-

我可以以某种方式绕过此限制吗?我的一个朋友叫我去graphAPI的一项新功能,如新测试版的一部分-

https://docs.microsoft.com/en-us/graph/api/user-add-

teamsappinstallation?view=graph-rest -beta&tabs =

http。

对我来说,它似乎与解决方案无关,因为我没有在响应中返回任何数据,因此,如果没有对话参考对象,我仍然无法向用户发送消息。

目前,我的解决方案是简单地在添加频道时在频道中广播一条消息,要求用户通过发送消息来“注册”它。还有其他建议吗?

回答:

最简单的方法是:

  1. 为团队安装机器人
  2. 查询团队名册 -步骤3中的链接有另一种方法可以做到这一点
  3. 与用户进行对话并发送主动消息

这些链接中有很多代码,最好只访问它们而不是在此处复制/粘贴它们。

第3步的末尾还提到trustServiceUrl,如果尝试发送主动消息时遇到权限/身份验证问题,则可能会很方便。


编辑节点:

回答:

npm i -S npm install botbuilder-teams@4.0.0-beta1 botframework-connector

注意:这@<version>一点很重要!

回答:

const teams = require('botbuilder-teams');

adapter.use(new teams.TeamsMiddleware());

回答:

// Get Team Roster

const credentials = new MicrosoftAppCredentials(process.env.MicrosoftAppId, process.env.MicrosoftAppPassword);

const connector = new ConnectorClient(credentials, { baseUri: context.activity.serviceUrl });

const roster = await connector.conversations.getConversationMembers(context.activity.conversation.id);

回答:

const { TeamsContext } = require('botbuilder-teams');

// Send Proactive Message

const teamsCtx = TeamsContext.from(context);

const parameters = {

members: [

roster[0] // Replace with appropriate user

],

channelData: {

tenant: {

id: teamsCtx.tenant.id

}

}

};

const conversationResource = await connector.conversations.createConversation(parameters);

const message = MessageFactory.text('This is a proactive message');

await connector.conversations.sendToConversation(conversationResource.id, message);

回答:

builder-howto-proactive-message?view=azure-bot-

service-4.0&tabs=csharp#avoiding-401-unauthorized-errors)

阅读有关它。在发送消息之前,您需要这样做。

MicrosoftAppCredentials.trustServiceUrl(context.activity.serviceUrl);

以上是 团队中的主动消息传递机器人,无需事先提及该机器人 的全部内容, 来源链接: utcz.com/qa/415246.html

回到顶部