首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过ConnectorClient bot连接器向团队发送消息

无法通过ConnectorClient bot连接器向团队发送消息
EN

Stack Overflow用户
提问于 2019-12-12 17:53:48
回答 1查看 168关注 0票数 1

我正试图从驻留在我的Teams中的一个主动的第三方WebHook回调中向团队频道发送一条消息,这是在我的机器人对话结束后的一段时间外部触发的。

我的config.ServiceURL是'https://smba.trafficmanager.net/amer/‘,这是我在会话时从机器人那里得到的。

我的config.MicrosoftAppId值是分配给我在Azure中的bot应用程序注册的ApplicationID。

我的config.MicrosoftAppPassword是我为注册的bot应用程序创建的客户端机密。

我的ChannelInfo值是我在另一个应用程序中枚举目标团队的所有通道时发现的值。我用'f's替换了实际值。

在Azure中,我向我的注册应用程序添加了以下权限:委托- Group.ReadWrite.All

当我试图建立对话时,我得到了一个禁止的回应。如果我将下面的ChannelInfo更改为假值,就会收到一个未找到的响应,因此至少ChannelInfo似乎是一个有效值。

,我还需要添加另一个权限吗?我错过一步了吗?我做错什么了吗?

以下是代码:

代码语言:javascript
复制
        AuthenticationConfig config = AuthenticationConfig.ReadFromJsonFile("appsettings.json");

        var credentials = new MicrosoftAppCredentials(config.MicrosoftAppId, config.MicrosoftAppPassword);

        if (!MicrosoftAppCredentials.IsTrustedServiceUrl(config.ServiceURL))
        {
            MicrosoftAppCredentials.TrustServiceUrl(config.ServiceURL);
        }

        var serviceUri = new Uri(config.ServiceURL);
        var botConnector = new ConnectorClient(serviceUri, credentials);


        Activity message = (Activity)Activity.CreateMessageActivity();
        message.Text = "Hello World";

        var conversationParameters = new ConversationParameters
        {
            Bot = message.From,
            IsGroup = true,
            ChannelData = new TeamsChannelData
            {
                Channel = new ChannelInfo("19:ffffffffffffffffffffffffffffffff@thread.skype")
            },
            Activity = (Activity)message
        };


        var conversationResponse = await botConnector.Conversations.CreateConversationAsync(conversationParameters);

        await botConnector
           .Conversations
           .SendToConversationAsync(message);
EN

回答 1

Stack Overflow用户

发布于 2019-12-13 17:55:59

你的代码对我很有用。以下是一些你可以尝试的东西:

  1. 确保您通过appId或清单上载将您的机器人排成小组,并且确保您不仅仅是通过appId与机器人对话
  2. 确保您的bot已安装到您希望它发出消息的团队中。
  3. 将载于bot上的域添加到bot清单的有效域部分
  4. 通过将.SendToConversationAsync(message);更改为.SendToConversationAsync(conversationResponse.Id, message);,确保将消息发送到正确的对话

还请注意,由于Bot <->Team功能已经直接滚到Bot中,所以Microsoft.Bot.Builder.Teams包已经被废弃了。我强烈建议远离它。

您可能希望发送积极的消息,如这个样本所示。另一个团队样本是50-60号.

如果你想坚持这个方案,请告诉我,我可以继续努力提供支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59310279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档