У меня есть бот (на основе старого образца core-bot), который развернут в Microsoft Teams. Иногда, когда в командах происходит событие уведомления, такое как добавление нового канала или удаление канала (или возможного добавления / удаления пользователя), я получаю следующую ошибку onTurn: "error":"Cannot read property 'length' of undefined"
. Глядя на код, кажется, виноват код Welcome Message. Единственное свойство length находится в context.activity.membersAdded, поэтому оно должно быть причиной проблемы. Но я не совсем понимаю, что происходит. Основываясь на приведенном ниже утверждении, событие должно инициировать действие ConversationUpdate, но без свойства membersAdded. Может ли кто-нибудь пролить свет на то, что вызывает эта деятельность, которую инициируют Команды, и что я должен добавить в это приветствие, чтобы предотвратить появление сообщения об ошибке? Чтобы уточнить, сообщение об ошибке поступает в канал сообщений команды / канала, куда поступает событие, такое как сообщение об удалении канала.
Раздел кода, в котором, как мне кажется, происходит ошибка:
} else if (context.activity.type === ActivityTypes.ConversationUpdate) {
// Handle ConversationUpdate activity type, which is used to indicates new members add to
// the conversation.
// see https://aka.ms/about-bot-activity-message to learn more about the message and other activity types
// Do we have any new members added to the conversation?
if (context.activity.membersAdded.length !== 0) {
// Iterate over all new members added to the conversation
for (var idx in context.activity.membersAdded) {
// Greet anyone that was not the target (recipient) of this message
// the 'bot' is the recipient for events from the channel,
// context.activity.membersAdded == context.activity.recipient.Id indicates the
// bot was added to the conversation.
if (context.activity.membersAdded[idx].id === context.activity.recipient.id) {
// Welcome user.
await context.sendActivity('Hi! I\'m the IT Innovation Bot. I can answer questions about the innovation team and capture your innovation ideas. Let me know how I can help!')
}
}
}
}