"exceptionMessage":“'ReplyToId' 不能为空。”

"exceptionMessage": "'ReplyToId' cannot be null."

我只是想在添加机器人时向用户发送欢迎消息。我已经编写了以下代码,但我收到 "exceptionMessage":“'ReplyToId' 不能为空。” 在 bot JSON 结果中。

else if (message.Type == ActivityTypes.ConversationUpdate)
                {
                    // Handle conversation state changes, like members being added and removed
                    // Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info
                    // Not available in all channels
                    IConversationUpdateActivity conversationupdate = message;
                    using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message))
                    {
                        var client = scope.Resolve<IConnectorClient>();
                        if (conversationupdate.MembersAdded.Any())
                        {
                            var reply = message.CreateReply();
                            foreach (var newMember in conversationupdate.MembersAdded)
                            {
                                if (newMember.Id != message.Recipient.Id)
                                {
                                    reply.Text = $"Welcome {newMember.Name}! ";
                                }
                                else
                                {
                                    reply.Text = $"Welcome {message.From.Name}";

                                }
                                await client.Conversations.ReplyToActivityAsync(message);
                            }
                        }
                    }
                }

您似乎没有正确创建回复。您正在使用传入消息而不是从中创建回复。

这是有效的代码,您应该可以适应您的场景:

else if (message.Type == ActivityTypes.ConversationUpdate)
{
     if (message.MembersAdded.Any(o => o.Id == message.Recipient.Id))
     {
             var reply = message.CreateReply("Welcome!");

             ConnectorClient connector = new ConnectorClient(new Uri(message.ServiceUrl));

             await connector.Conversations.ReplyToActivityAsync(reply);
      }
}