Команда, я разработал бота, используя бот-фреймворк SDK4. Я использую канал Directline для связи с моим ботом. Мое требование основано на данных канала на сообщение «requestWelcomeDialog». Я должен показать приветственное сообщение.
Код от моего клиента-бота:
BotChat.App({
botConnection: botConnection,
user: userOption,
bot: { id: model.botId, name: model.botName },
resize: 'window',
speechOptions: speechOptions,
locale: 'en',
sendTypingIndicator: true,
}, document.getElementById('BotChatElement'));
PostBotConfiguration();
botConnection
.postActivity({
from: user,
name: 'requestWelcomeDialog',
type: 'event',
value: { 'BotType': 'abcd' }
})
.subscribe(function (id) {
setWCScreenChatPosition();
model.botRender = true;
console.log('"trigger requestWelcomeDialog" sent');
});
В приведенном выше коде я посылаю BotType как 'abcd ». Я пытаюсь прочитать это значение из моего бота.
Мой код в боте.
protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
{
Utility util = new Utility();
try
{
foreach (var member in membersAdded)
{
if (member.Id != turnContext.Activity.Recipient.Id)
{
BotChannelData cdata = new BotChannelData();
turnContext.Activity.TryGetChannelData(out cdata);
}
}
}
catch
{
}
}
В этом я всегда получаю исключение нулевой ссылки.
Могу ли я узнать что мне в этом не хватает?