Сначала я отправляю проактивное сообщение пользователю через смс-канал внутри метода OAuthCallback
var connector = new ConnectorClient();
Message message = new Message();
message.From = new ChannelAccount { Id = Constants.botId, Address = "+12312311", ChannelId = "sms", IsBot = true };
message.To = new ChannelAccount { Id = newUserId, Address = "+18768763", ChannelId = "sms", IsBot = false };
message.Text = $"How are you doing? ";
message.Language = "en";
connector.Messages.SendMessage(message);
IBotData myDataBag = new JObjectBotData(message);
myDataBag.UserData.SetValue("Username", "Bob");
myDataBag.PerUserInConversationData.SetValue("Newuser", "yes");
Затем в моем основном Dialog.cs я пытаюсь получить к нему доступ
public static readonly IDialog<string> dialog = Chain
.PostToChain()
.Switch(new Case<Message, IDialog<string>>((msg) =>
{
var regex = new Regex("hello$", RegexOptions.IgnoreCase);
return regex.IsMatch(msg.Text);
},
(ctx, msg) =>
{
// Clearing user related data upon logout
string isnewuser = ctx.PerUserInConversationData.TryGetValue("Newuser");
string username = ctx.UserData.TryGetValue("Username");
return Chain.Return($"Welcome {username}");
}))
.Unwrap()
.PostToUser();
Я получаю сообщение на свой телефон. Тем не менее, я не могу вернуть имя пользователя и данные сеанса newuser, сохраненные в OAuthCallback.
Я подозреваю, что это происходит потому, что в активном сообщении не задан разговор. И разговор должен как-то отличаться.
так как я могу получить его для установки данных сеанса для моего проактивного сообщения в будущем разговоре?