【问题标题】:show welcome message in Microsoft teams using Microsoft bot framework使用 Microsoft bot 框架在 Microsoft 团队中显示欢迎消息
【发布时间】:2016-12-30 20:04:07
【问题描述】:

我使用下面的代码向用户显示欢迎信息。

private Activity HandleSystemMessage(Activity message)
        {
            if (message.Type == ActivityTypes.DeleteUserData)
            {
                // Implement user deletion here
                // If we handle user deletion, return a real message
            }
            else if (message.Type == ActivityTypes.ConversationUpdate)
            {
                string replyMessage = string.Empty;
                replyMessage = Responses.Greeting;
                return message.CreateReply(replyMessage);
            }
            else if (message.Type == ActivityTypes.ContactRelationUpdate)
            {
                // Handle add/remove from contact lists
                // Activity.From + Activity.Action represent what happened
            }
            else if (message.Type == ActivityTypes.Typing)
            {
                // Handle knowing tha the user is typing
            }
            else if (message.Type == ActivityTypes.Ping)
            {
            }
            return null;
        }

如果活动类型不是消息,则使用以下方法调用HandleSystemMessage。

public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
        {
            string reply = "";
            ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
            if (activity.Type == ActivityTypes.Message)
            {
                    stLuis = await LuisHelper.ParseUserInput(activity.Text);

                    string userResponse = activity.Text.ToLower();

                    switch (stLuis.topScoringIntent.intent)
                    {
                        case "Greetings":
                            reply = Responses.Greeting;
                            break; 

                        case "None":
                            reply = Responses.None;
                            break;

                        default:
                            break;
                    }
                }

                if (reply != "")
                    await connector.Conversations.ReplyToActivityAsync(activity.CreateReply(reply));
            }
            else
            {
                var reply1 = HandleSystemMessage(activity);
                if (reply1 != null)
                    await connector.Conversations.ReplyToActivityAsync(reply1);
            }
            var response = Request.CreateResponse(HttpStatusCode.OK); 
            return response;
        }

此代码适用于 Skype。但是当我在 Microsoft 团队中添加相同的机器人时,它不会显示欢迎消息。

【问题讨论】:

  • 你能分享调用HandleSystemMessage的代码吗?当用户发起新对话时,您是否检查过您的机器人收到的活动的类型属性?
  • @SidUppal-MSFT 我添加了调用 HandleSystemMessage 的代码。正如你现在看到的,我只在活动类型不是消息时调用 HandleSystemMessage。
  • 确认您看到了可靠交付会话更新活动类型的错误。我们正在调查。
  • 你对这个问题有可靠的重现吗?
  • @SidUppal-MSFT 不幸的是,我无法与您分享确切的代码。但是骨架和我上面分享的一样。

标签: botframework microsoft-teams


【解决方案1】:

到现在 (2016-12-30) 当您将机器人添加到“联系人列表”时,MSFT Teams 根本不会发送任何消息。正如 MSFT 人员所说,这是一个已知的限制,将在不久的将来解决。

在向机器人发送 ConversationUpdate 消息的同时,用户必须首先启动与机器人的对话。

作为一种解决方法,如果您的机器人足够有状态,您可以处理从用户发送的特殊文本,例如“开始”,或者只是第一条传入消息。

【讨论】:

  • 目前我也在以同样的方式处理,即等待用户的特殊文本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 2021-06-02
  • 1970-01-01
  • 2019-04-22
  • 2021-06-06
相关资源
最近更新 更多