diff --git a/AzureBot.Services.Common/ContextConstants.cs b/AzureBot.Services.Common/ContextConstants.cs index 700c3fa..28ceaf3 100644 --- a/AzureBot.Services.Common/ContextConstants.cs +++ b/AzureBot.Services.Common/ContextConstants.cs @@ -2,6 +2,7 @@ { public class ContextConstants { + public const string AuthResultKey = "authResult"; public const string SubscriptionIdKey = "subscriptionId"; } } \ No newline at end of file diff --git a/AzureBot/Controllers/MessagesController.cs b/AzureBot/Controllers/MessagesController.cs index cb63b06..591a465 100644 --- a/AzureBot/Controllers/MessagesController.cs +++ b/AzureBot/Controllers/MessagesController.cs @@ -25,6 +25,19 @@ public virtual async Task Post([FromBody] Activity activity { switch (activity.GetActivityType()) { + case ActivityTypes.Event: + var eventToken = activity.Value.ToString(); + + AuthBot.Models.AuthResult authResult = new AuthBot.Models.AuthResult(); + object tokenCache = new Microsoft.IdentityModel.Clients.ActiveDirectory.TokenCache(); + var token = await AuthBot.Helpers.AzureActiveDirectoryHelper.GetTokenByAuthCodeAsync(eventToken, + (Microsoft.IdentityModel.Clients.ActiveDirectory.TokenCache)tokenCache); + + StateClient stateClient = activity.GetStateClient(); + BotData userData = await stateClient.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id); + userData.SetProperty(ContextConstants.AuthResultKey, token); + await stateClient.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, userData); + break; case ActivityTypes.Message: case ActivityTypes.ConversationUpdate: