【问题标题】:Sending proactive messages to MS Teams向 MS Teams 发送主动消息
【发布时间】:2019-09-18 03:44:27
【问题描述】:

我无法向 MS Teams 发送主动消息。 您可以在下面看到代码和错误。 错误信息如下: 对话创建参数不正确

当我在托管机器人的 azure 门户中放置应用程序日志时: 我看到以下错误: Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter: 异常捕获:发生一个或多个错误。 (操作返回一个无效的状态码'BadRequest')

2019-09-16T13:32:57 Microsoft.WindowsAzure.Storage.StorageException: 远程服务器返回错误:(409) 冲突。 ---> System.Net.WebException:远程服务器返回错误:(409) Conflict.at System.Net.HttpWebRequest.GetResponse()at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T]( RESTCommand1 cmd, IRetryPolicy policy, OperationContext operationContext)--- End of inner exception stack trace ---at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand1 cmd,IRetryPolicy 策略,OperationContext operationContext)在 Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.ListBlobsSegmented(字符串前缀,布尔 useFlatBlobListing,BlobListingDetails blobListingDetails,Nullable`1 maxResults,BlobContinuationToken currentToken,BlobRequestOptions 选项,OperationContext operationContext)在Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.CleanupOldBlobLogs(Object state)Request InformationRequestID:a8f8929d-001e-0005-4693-6ccae9000000RequestDate:Mon, 16 Sep 2019 13:32:57 GMTStatusMessage:容器中的 blob 类型无法识别通过这个版本。ErrorCode:FeatureVersionMismatch。 请你帮助我好吗? 谢谢

 MicrosoftAppCredentials.TrustServiceUrl(turnContext.Activity.ServiceUrl);
            var teamConversationData = turnContext.Activity.GetChannelData<TeamsChannelData>();
            var connectorClient = new ConnectorClient(new Uri(turnContext.Activity.ServiceUrl), _credentialProvider.AppId, _credentialProvider.Password);

            var userId = "28:2c988176-cea6-4aaa-9a69-8ace544a43e3";
            var tenantId = teamConversationData.Tenant.Id;
            var parameters = new ConversationParameters
            {
                Members = new[] { new ChannelAccount(userId) },
                ChannelData = new TeamsChannelData
                {
                    Tenant = new TenantInfo(tenantId),
                },
            };

            var conversationResource = await connectorClient.Conversations.CreateConversationAsync(parameters);
            var message = Activity.CreateMessageActivity();
            message.Text = "This is a proactive message1.";
            await connectorClient.Conversations.SendToConversationAsync(conversationResource.Id, (Activity)message);

            // Save any state changes that might have occured during the turn.


【问题讨论】:

    标签: c# botframework


    【解决方案1】:

    https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/bots/bots-create

    团队中的 V4 机器人框架支持是测试版(我最后一次听说)。如果主动消息有问题,我不会感到惊讶。版本不匹配错误可能是由于团队需要 V3 有效负载。

    【讨论】:

      【解决方案2】:

      我在电子邮件中提到了这一点,但我在这里为其他人重新发布:

      那是因为您没有使用 Teams 用户 ID。它们的格式如下:

      29:1I9Is_Sx0O-Iy2rQ7Xz1lcaPKlO9eqmBRTBuW6XzXXXXXXXXMij8BVMdBcL9L_RwWNJyAHFQb0TXXXXXX
      

      我在this answer 中有一堆 Teams 格式的示例。

      获取所有信息的最简单方法是与用户开始一条消息并设置断点以获取传入消息。

      您也可以query the roster

      【讨论】:

        猜你喜欢
        • 2020-11-14
        • 2021-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多