From 888f5d7109c2438f3590c9c7174829664754bcab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20R=20C=20Gon=C3=A7alves?= <3gcrricardo@ache.com.br> Date: Wed, 21 Aug 2024 20:55:46 -0300 Subject: [PATCH] Add project files. --- IABotTeste.sln | 31 +++ IABotTeste/.gitignore | 29 +++ IABotTeste/AdapterWithErrorHandler.cs | 33 +++ IABotTeste/AuthService.cs | 55 +++++ IABotTeste/Bot/EchoBot.cs | 210 ++++++++++++++++++ IABotTeste/Config.cs | 8 + IABotTeste/Controllers/BotController.cs | 30 +++ IABotTeste/IABotTeste.csproj | 14 ++ IABotTeste/Program.cs | 46 ++++ IABotTeste/Properties/launchSettings.json | 25 +++ IABotTeste/TokenService.cs | 20 ++ IABotTeste/appsettings.TestTool.json | 12 + IABotTeste/appsettings.json | 12 + TeamsApp/GettingStarted.md | 25 +++ TeamsApp/TeamsApp.ttkproj | 9 + .../appPackage/build/appPackage.local.zip | Bin 0 -> 64478 bytes TeamsApp/appPackage/build/manifest.local.json | 46 ++++ TeamsApp/appPackage/color.png | Bin 0 -> 63235 bytes TeamsApp/appPackage/colorXXX.png | Bin 0 -> 5131 bytes TeamsApp/appPackage/manifest.json | 47 ++++ TeamsApp/appPackage/outline.png | Bin 0 -> 327 bytes TeamsApp/env/.env.dev | 15 ++ TeamsApp/env/.env.local | 14 ++ TeamsApp/infra/azure.bicep | 73 ++++++ TeamsApp/infra/azure.parameters.json | 21 ++ TeamsApp/infra/botRegistration/azurebot.bicep | 37 +++ TeamsApp/infra/botRegistration/readme.md | 1 + TeamsApp/launchSettings.json | 15 ++ TeamsApp/teamsapp.local.yml | 70 ++++++ TeamsApp/teamsapp.yml | 99 +++++++++ 30 files changed, 997 insertions(+) create mode 100644 IABotTeste.sln create mode 100644 IABotTeste/.gitignore create mode 100644 IABotTeste/AdapterWithErrorHandler.cs create mode 100644 IABotTeste/AuthService.cs create mode 100644 IABotTeste/Bot/EchoBot.cs create mode 100644 IABotTeste/Config.cs create mode 100644 IABotTeste/Controllers/BotController.cs create mode 100644 IABotTeste/IABotTeste.csproj create mode 100644 IABotTeste/Program.cs create mode 100644 IABotTeste/Properties/launchSettings.json create mode 100644 IABotTeste/TokenService.cs create mode 100644 IABotTeste/appsettings.TestTool.json create mode 100644 IABotTeste/appsettings.json create mode 100644 TeamsApp/GettingStarted.md create mode 100644 TeamsApp/TeamsApp.ttkproj create mode 100644 TeamsApp/appPackage/build/appPackage.local.zip create mode 100644 TeamsApp/appPackage/build/manifest.local.json create mode 100644 TeamsApp/appPackage/color.png create mode 100644 TeamsApp/appPackage/colorXXX.png create mode 100644 TeamsApp/appPackage/manifest.json create mode 100644 TeamsApp/appPackage/outline.png create mode 100644 TeamsApp/env/.env.dev create mode 100644 TeamsApp/env/.env.local create mode 100644 TeamsApp/infra/azure.bicep create mode 100644 TeamsApp/infra/azure.parameters.json create mode 100644 TeamsApp/infra/botRegistration/azurebot.bicep create mode 100644 TeamsApp/infra/botRegistration/readme.md create mode 100644 TeamsApp/launchSettings.json create mode 100644 TeamsApp/teamsapp.local.yml create mode 100644 TeamsApp/teamsapp.yml diff --git a/IABotTeste.sln b/IABotTeste.sln new file mode 100644 index 0000000..f99358a --- /dev/null +++ b/IABotTeste.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35122.118 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IABotTeste", "IABotTeste\IABotTeste.csproj", "{BC00122B-19BF-47CC-AC96-3D5E0C01C553}" +EndProject +Project("{A9E3F50B-275E-4AF7-ADCE-8BE12D41E305}") = "TeamsApp", "TeamsApp\TeamsApp.ttkproj", "{8307838E-7D1A-420E-8224-A4C34A3CD939}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BC00122B-19BF-47CC-AC96-3D5E0C01C553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC00122B-19BF-47CC-AC96-3D5E0C01C553}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC00122B-19BF-47CC-AC96-3D5E0C01C553}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC00122B-19BF-47CC-AC96-3D5E0C01C553}.Release|Any CPU.Build.0 = Release|Any CPU + {8307838E-7D1A-420E-8224-A4C34A3CD939}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8307838E-7D1A-420E-8224-A4C34A3CD939}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8307838E-7D1A-420E-8224-A4C34A3CD939}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8307838E-7D1A-420E-8224-A4C34A3CD939}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {ED04290E-CA0D-4CCF-B188-7897C233E089} + EndGlobalSection +EndGlobal diff --git a/IABotTeste/.gitignore b/IABotTeste/.gitignore new file mode 100644 index 0000000..2b7f959 --- /dev/null +++ b/IABotTeste/.gitignore @@ -0,0 +1,29 @@ +# TeamsFx files +build +appPackage/build +env/.env.*.user +env/.env.local +appsettings.Development.json +.deployment + +# User-specific files +*.user + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Notification local store +.notification.localstore.json +.notification.testtoolstore.json + +# devTools +devTools/ \ No newline at end of file diff --git a/IABotTeste/AdapterWithErrorHandler.cs b/IABotTeste/AdapterWithErrorHandler.cs new file mode 100644 index 0000000..414f253 --- /dev/null +++ b/IABotTeste/AdapterWithErrorHandler.cs @@ -0,0 +1,33 @@ +using Microsoft.Bot.Builder.Integration.AspNet.Core; +using Microsoft.Bot.Builder.TraceExtensions; +using Microsoft.Bot.Connector.Authentication; +using Microsoft.Bot.Schema; + +namespace IABotTeste; + +public class AdapterWithErrorHandler : CloudAdapter +{ + public AdapterWithErrorHandler(BotFrameworkAuthentication auth, ILogger logger) + : base(auth, logger) + { + OnTurnError = async (turnContext, exception) => + { + // Log any leaked exception from the application. + // NOTE: In production environment, you should consider logging this to + // Azure Application Insights. Visit https://aka.ms/bottelemetry to see how + // to add telemetry capture to your bot. + logger.LogError(exception, $"[OnTurnError] unhandled error : {exception.Message}"); + + // Only send error message for user messages, not for other message types so the bot doesn't spam a channel or chat. + if (turnContext.Activity.Type == ActivityTypes.Message) + { + // Send a message to the user + await turnContext.SendActivityAsync("The bot encountered an error or bug."); + await turnContext.SendActivityAsync("To continue to run this bot, please fix the bot source code."); + + // Send a trace activity, which will be displayed in the Bot Framework Emulator + await turnContext.TraceActivityAsync("OnTurnError Trace", exception.Message, "https://www.botframework.com/schemas/error", "TurnError"); + } + }; + } +} \ No newline at end of file diff --git a/IABotTeste/AuthService.cs b/IABotTeste/AuthService.cs new file mode 100644 index 0000000..abc952f --- /dev/null +++ b/IABotTeste/AuthService.cs @@ -0,0 +1,55 @@ +namespace IABotTeste +{ + using Newtonsoft.Json; + using Newtonsoft.Json.Linq; + using System.Net; + using System.Net.Http; + using System.Net.Http.Headers; + using System.Text; + using System.Text.Json.Serialization.Metadata; + using System.Threading.Tasks; + + public class AuthService + { + private readonly HttpClient _httpClient; + + public AuthService(HttpClient httpClient) + { + _httpClient = httpClient; + } + + public async Task GetNewTokenAsync() + { + var bodyObj = new + { + firstName = "Haiping", + lastName = "Chen", + email = "rrcgoncalves@gmail.com", + password = "123456" + }; + var json = JsonConvert.SerializeObject(bodyObj); + var content = new System.Net.Http.StringContent(json, Encoding.UTF8, "application/json"); + + string encoded = System.Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1") + .GetBytes(bodyObj.email + ":" + bodyObj.password)); + + var request = new HttpRequestMessage(HttpMethod.Post, "http://botchat.carneiro.ddnsfree.com/token"); + request.Headers.Add("Authorization", "Basic " + encoded); + request.Content = content; + + var response = await _httpClient.SendAsync(request); + response.EnsureSuccessStatusCode(); + + var responseContent = await response.Content.ReadAsStringAsync(); + // Supondo que o token esteja no campo "access_token" do JSON de resposta + var token = ExtractTokenFromResponse(responseContent); + return token; + } + + private string ExtractTokenFromResponse(string responseContent) + { + dynamic jsonObj = JObject.Parse(responseContent); + return jsonObj.access_token; + } + } +} diff --git a/IABotTeste/Bot/EchoBot.cs b/IABotTeste/Bot/EchoBot.cs new file mode 100644 index 0000000..f688088 --- /dev/null +++ b/IABotTeste/Bot/EchoBot.cs @@ -0,0 +1,210 @@ +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.Teams; +using Microsoft.Bot.Schema; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json; +using System.Net.Http; +using System.Text; +using System.Diagnostics; + +namespace IABotTeste.Bot; + +public class IaTestBot : TeamsActivityHandler +{ + private readonly IHttpClientFactory httpClientFactory; + private Dictionary _dataStore = new Dictionary(); + + public IaTestBot(IHttpClientFactory httpClientFactory) + { + this.httpClientFactory = httpClientFactory; + } + + protected override async Task OnMessageActivityAsync(ITurnContext turnContext, CancellationToken cancellationToken) + { + await turnContext.SendActivityAsync(new Microsoft.Bot.Schema.Activity { Type = ActivityTypes.Typing }, cancellationToken); + + string messageText = turnContext.Activity.RemoveRecipientMention()?.Trim(); + var replyText = ""; + + try + { + // Crie um cliente HTTP usando a fábrica injetada + var client = httpClientFactory.CreateClient(); + client.Timeout = TimeSpan.FromSeconds(240); + var auth = new AuthService(client); + var tokenService = new TokenService(); + var token = ""; + var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken); + + var memberData = GetData(member.Id); + + if (memberData?.idConversation != null) + { + token = memberData.token; + + if (!string.IsNullOrEmpty(token) && tokenService.IsTokenExpired(token)) + { + token = await auth.GetNewTokenAsync(); + memberData.token = token; + } + } + else + { + token = await auth.GetNewTokenAsync(); + //var client2 = httpClientFactory.CreateClient(); + var idConv = await GetConversationId(client, token); + memberData = new + { + token = token, + idConversation = idConv + }; + } + AddData(member.Id, memberData); + + await turnContext.SendActivityAsync(new Microsoft.Bot.Schema.Activity { Type = ActivityTypes.Typing }, cancellationToken); + + replyText = await SendMessage(client, memberData, messageText); + + + replyText = replyText.Replace("<|assistant|>", ""); + replyText = removeTags(replyText); + if (replyText.Contains("Instruction")) + { + replyText = replyText.Substring(0, replyText.IndexOf("Instruction")); + } + } + catch (Exception ex) + { + replyText = $"{ex.Message}."; + } + + await turnContext.SendActivityAsync(MessageFactory.Text(replyText), cancellationToken); + } + + private string removeTags(string replyText) + { + string result = ""; + try + { + int start = replyText.IndexOf("<"); + int end = replyText.LastIndexOf(">"); + result = replyText.Replace(replyText.Substring(start, end+1), ""); + } + catch (Exception ex) + { + result = replyText; + } + return result; + } + + protected override async Task OnMembersAddedAsync(IList membersAdded, ITurnContext turnContext, CancellationToken cancellationToken) + { + var welcomeText = "Bem-vindo!"; + foreach (var member in membersAdded) + { + if (member.Id != turnContext.Activity.Recipient.Id) + { + await turnContext.SendActivityAsync(MessageFactory.Text(welcomeText), cancellationToken); + } + } + } + + public void AddData(string key, dynamic value) + { + var json = JsonConvert.SerializeObject(value); + + if (!_dataStore.ContainsKey(key)) + { + _dataStore.Add(key, json); + } + else + { + _dataStore[key] = json; // Atualiza o valor se a chave já existir + } + } + + public dynamic GetData(string key) + { + if (_dataStore.TryGetValue(key, out string value)) + { + return JObject.Parse(value); + } + return null; // Ou algum valor padrão + } + + public async Task GetConversationId(HttpClient client, string token) + { + try + { + var targetUrl = "http://botchat.carneiro.ddnsfree.com/conversation/cc57f9b1-0c07-49c7-aecb-bd56aa4bf260"; + var request = new HttpRequestMessage(HttpMethod.Post, targetUrl); + var content = new StringContent("{}", Encoding.UTF8, "application/json"); + request.Headers.Add("Authorization", "Bearer " + token); + request.Content = content; + // Configuração do HttpClient (opcional) + //client.Timeout = TimeSpan.FromSeconds(240); + + //Faça a chamada POST para o end - point de destino + //var response = await client.PostAsync(targetUrl, content); + var response = await client.SendAsync(request); + response.EnsureSuccessStatusCode(); + + // Verifique se a resposta foi bem-sucedida (código 200 OK) + if (response.IsSuccessStatusCode) + { + // Leia o stream de resposta + using var responseStream = await response.Content.ReadAsStreamAsync(); + using var reader = new StreamReader(responseStream); + var result = await reader.ReadToEndAsync(); + dynamic resObj = JObject.Parse(result); + // Processar os objetos individuais e unificar os campos "part" + return resObj.id; + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.ToString()); + return null; + } + return null; + } + + public async Task SendMessage(HttpClient client, dynamic memberData, string message) + { + var targetUrl = "http://botchat.carneiro.ddnsfree.com/conversation/cc57f9b1-0c07-49c7-aecb-bd56aa4bf260/" + memberData.idConversation; + var request = new HttpRequestMessage(HttpMethod.Post, targetUrl); + var sendContent = new + { + text = message + }; + var contentString = JsonConvert.SerializeObject(sendContent); + var content = new System.Net.Http.StringContent(contentString, Encoding.UTF8, "application/json"); + + request.Headers.Add("Authorization", "Bearer " + memberData.token); + request.Content = content; + // Configuração do HttpClient (opcional) + //client.Timeout = TimeSpan.FromSeconds(240); + + //Faça a chamada POST para o end - point de destino + var response = await client.SendAsync(request); + + // Verifique se a resposta foi bem-sucedida (código 200 OK) + if (response.IsSuccessStatusCode) + { + // Leia o stream de resposta + using var responseStream = await response.Content.ReadAsStreamAsync(); + using var reader = new StreamReader(responseStream); + var result = await reader.ReadToEndAsync(); + dynamic resObj = JObject.Parse(result); + // Processar os objetos individuais e unificar os campos "part" + return resObj.text; + } + else + { + return response.ToString(); + } + return null; + } + +} + diff --git a/IABotTeste/Config.cs b/IABotTeste/Config.cs new file mode 100644 index 0000000..1c34f38 --- /dev/null +++ b/IABotTeste/Config.cs @@ -0,0 +1,8 @@ +namespace IABotTeste +{ + public class ConfigOptions + { + public string BOT_ID { get; set; } + public string BOT_PASSWORD { get; set; } + } +} diff --git a/IABotTeste/Controllers/BotController.cs b/IABotTeste/Controllers/BotController.cs new file mode 100644 index 0000000..2b5bd21 --- /dev/null +++ b/IABotTeste/Controllers/BotController.cs @@ -0,0 +1,30 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.Integration.AspNet.Core; + +namespace IABotTeste.Controllers; + +// This ASP Controller is created to handle a request. Dependency Injection will provide the Adapter and IBot +// implementation at runtime. Multiple different IBot implementations running at different endpoints can be +// achieved by specifying a more specific type for the bot constructor argument. +[Route("api/messages")] +[ApiController] +public class BotController : ControllerBase +{ + private readonly IBotFrameworkHttpAdapter Adapter; + private readonly IBot Bot; + + public BotController(IBotFrameworkHttpAdapter adapter, IBot bot) + { + Adapter = adapter; + Bot = bot; + } + + [HttpPost, HttpGet] + public async Task PostAsync() + { + // Delegate the processing of the HTTP POST to the adapter. + // The adapter will invoke the bot. + await Adapter.ProcessAsync(Request, Response, Bot); + } +} \ No newline at end of file diff --git a/IABotTeste/IABotTeste.csproj b/IABotTeste/IABotTeste.csproj new file mode 100644 index 0000000..3dc7920 --- /dev/null +++ b/IABotTeste/IABotTeste.csproj @@ -0,0 +1,14 @@ + + + + net8.0 + enable + + + + + + + + + diff --git a/IABotTeste/Program.cs b/IABotTeste/Program.cs new file mode 100644 index 0000000..c8c8467 --- /dev/null +++ b/IABotTeste/Program.cs @@ -0,0 +1,46 @@ +using IABotTeste; +using IABotTeste.Bot; +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.Integration.AspNet.Core; +using Microsoft.Bot.Connector.Authentication; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddControllers(); +builder.Services.AddHttpClient("WebClient", client => client.Timeout = TimeSpan.FromSeconds(600)); +builder.Services.AddHttpContextAccessor(); + +// Create the Bot Framework Authentication to be used with the Bot Adapter. +var config = builder.Configuration.Get(); +builder.Configuration["MicrosoftAppType"] = "MultiTenant"; +builder.Configuration["MicrosoftAppId"] = config.BOT_ID; +builder.Configuration["MicrosoftAppPassword"] = config.BOT_PASSWORD; +builder.Services.AddSingleton(); + +// Create the Bot Framework Adapter with error handling enabled. +builder.Services.AddSingleton(); + +// Create the bot as a transient. In this case the ASP Controller is expecting an IBot. +builder.Services.AddTransient(); + +builder.Services.AddHttpClient(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.UseDeveloperExceptionPage(); +} +app.UseStaticFiles(); + +app.UseRouting(); + +app.UseAuthentication(); +app.UseAuthorization(); + +app.UseEndpoints(endpoints => +{ + endpoints.MapControllers(); +}); + +app.Run(); \ No newline at end of file diff --git a/IABotTeste/Properties/launchSettings.json b/IABotTeste/Properties/launchSettings.json new file mode 100644 index 0000000..4343fa0 --- /dev/null +++ b/IABotTeste/Properties/launchSettings.json @@ -0,0 +1,25 @@ +{ + "profiles": { + // Debug project within Teams + "Start Project": { + "commandName": "Project", + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5130", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "hotReloadProfile": "aspnetcore" + }, + // Debug project within Teams App Test Tool + "Teams App Test Tool": { + "commandName": "Project", + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5130", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "TestTool", + "TEAMSFX_NOTIFICATION_STORE_FILENAME": ".notification.testtoolstore.json" + }, + "hotReloadProfile": "aspnetcore" + }, + } +} \ No newline at end of file diff --git a/IABotTeste/TokenService.cs b/IABotTeste/TokenService.cs new file mode 100644 index 0000000..bfba09a --- /dev/null +++ b/IABotTeste/TokenService.cs @@ -0,0 +1,20 @@ +using System; +using System.IdentityModel.Tokens.Jwt; + +namespace IABotTeste +{ + public class TokenService + { + public bool IsTokenExpired(string token) + { + var tokenHandler = new JwtSecurityTokenHandler(); + var jwtToken = tokenHandler.ReadToken(token) as JwtSecurityToken; + + if (jwtToken == null) + throw new ArgumentException("Token inválido"); + + var expirationDate = jwtToken.ValidTo; + return expirationDate < DateTime.UtcNow; + } + } +} diff --git a/IABotTeste/appsettings.TestTool.json b/IABotTeste/appsettings.TestTool.json new file mode 100644 index 0000000..1a3d21d --- /dev/null +++ b/IABotTeste/appsettings.TestTool.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "AllowedHosts": "*", + "BOT_ID": "", + "BOT_PASSWORD": "" +} \ No newline at end of file diff --git a/IABotTeste/appsettings.json b/IABotTeste/appsettings.json new file mode 100644 index 0000000..d7290d1 --- /dev/null +++ b/IABotTeste/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "AllowedHosts": "*", + "BOT_ID": "$botId$", + "BOT_PASSWORD": "$bot-password$" +} diff --git a/TeamsApp/GettingStarted.md b/TeamsApp/GettingStarted.md new file mode 100644 index 0000000..b96d975 --- /dev/null +++ b/TeamsApp/GettingStarted.md @@ -0,0 +1,25 @@ +# Welcome to Teams Toolkit! + +## Quick Start +1. In the debug dropdown menu, select Dev Tunnels > Create A Tunnel (set authentication type to Public) or select an existing public dev tunnel +
![image](https://raw.githubusercontent.com/OfficeDev/TeamsFx/dev/docs/images/visualstudio/debug/create-devtunnel-button.png) +2. Right-click the 'TeamsApp' project in Solution Explorer and select Teams Toolkit > Prepare Teams App Dependencies +3. If prompted, sign in to Visual Studio with a Microsoft 365 work or school account +4. Press F5, or select Debug > Start Debugging menu in Visual Studio to start your app +
![image](https://raw.githubusercontent.com/OfficeDev/TeamsFx/dev/docs/images/visualstudio/debug/debug-button.png) +5. In the opened web browser, select Add button to test the app in Teams +6. In the message input field, type and send anything to your bot to get a response + +## Run the app on other platforms + +The Teams app can run in other platforms like Outlook and Microsoft 365 app. See https://aka.ms/vs-ttk-debug-multi-profiles for more details. + +## Get more info + +New to Teams app development or Teams Toolkit? Explore Teams app manifests, cloud deployment, and much more in the https://aka.ms/teams-toolkit-vs-docs. + +## Report an issue + +Select Visual Studio > Help > Send Feedback > Report a Problem. +Or, create an issue directly in our GitHub repository: +https://github.com/OfficeDev/TeamsFx/issues diff --git a/TeamsApp/TeamsApp.ttkproj b/TeamsApp/TeamsApp.ttkproj new file mode 100644 index 0000000..b16f96b --- /dev/null +++ b/TeamsApp/TeamsApp.ttkproj @@ -0,0 +1,9 @@ + + + + 8307838e-7d1a-420e-8224-a4c34a3cd939 + + + + + \ No newline at end of file diff --git a/TeamsApp/appPackage/build/appPackage.local.zip b/TeamsApp/appPackage/build/appPackage.local.zip new file mode 100644 index 0000000000000000000000000000000000000000..ecd103e06793b9220abced11ae324d600c16683e GIT binary patch literal 64478 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 VAPoxkpNGJ|N9FGs_v1fz{|6*d5=sC7 literal 0 HcmV?d00001 diff --git a/TeamsApp/appPackage/build/manifest.local.json b/TeamsApp/appPackage/build/manifest.local.json new file mode 100644 index 0000000..f0a1145 --- /dev/null +++ b/TeamsApp/appPackage/build/manifest.local.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json", + "manifestVersion": "1.16", + "version": "1.0.0", + "id": "2c04e52e-5fa2-4a7f-bee5-3f1945d4b7b7", + "packageName": "com.microsoft.teams.extension", + "developer": { + "name": "Teams App, Inc.", + "websiteUrl": "https://www.example.com", + "privacyUrl": "https://www.example.com/privacy", + "termsOfUseUrl": "https://www.example.com/termofuse" + }, + "icons": { + "color": "color.png", + "outline": "outline.png" + }, + "name": { + "short": "DoMinante local", + "full": "IA capaz de explicar os serviços da Domvs iT." + }, + "description": { + "short": "Short description of DoMinante", + "full": "Full description of DoMinante" + }, + "accentColor": "#FFFFFF", + "bots": [ + { + "botId": "b0db6007-73c3-4991-917e-febe4a006bbc", + "scopes": [ + "personal", + "team", + "groupchat" + ], + "supportsFiles": false, + "isNotificationOnly": false + } + ], + "composeExtensions": [], + "configurableTabs": [], + "staticTabs": [], + "permissions": [ + "identity", + "messageTeamMembers" + ], + "validDomains": [] +} \ No newline at end of file diff --git a/TeamsApp/appPackage/color.png b/TeamsApp/appPackage/color.png new file mode 100644 index 0000000000000000000000000000000000000000..4f3706ca623996ef7ab0b5cbe0535777e5b12238 GIT binary patch literal 63235 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 literal 0 HcmV?d00001 diff --git a/TeamsApp/appPackage/manifest.json b/TeamsApp/appPackage/manifest.json new file mode 100644 index 0000000..bbd6180 --- /dev/null +++ b/TeamsApp/appPackage/manifest.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json", + "manifestVersion": "1.16", + "version": "1.0.0", + "id": "${{TEAMS_APP_ID}}", + "packageName": "com.microsoft.teams.extension", + "developer": { + "name": "Teams App, Inc.", + "websiteUrl": "https://www.example.com", + "privacyUrl": "https://www.example.com/privacy", + "termsOfUseUrl": "https://www.example.com/termofuse" + }, + "icons": { + "color": "color.png", + "outline": "outline.png" + }, + "name": { + "short": "DoMinante ${{APP_NAME_SUFFIX}}", + "full": "IA capaz de explicar os serviços da Domvs iT." + }, + "description": { + "short": "Short description of DoMinante", + "full": "Full description of DoMinante" + }, + "accentColor": "#FFFFFF", + "bots": [ + { + "botId": "${{BOT_ID}}", + "scopes": [ + "personal", + "team", + "groupchat" + ], + "supportsFiles": false, + "isNotificationOnly": false + } + ], + "composeExtensions": [ + ], + "configurableTabs": [], + "staticTabs": [], + "permissions": [ + "identity", + "messageTeamMembers" + ], + "validDomains": [] +} \ No newline at end of file diff --git a/TeamsApp/appPackage/outline.png b/TeamsApp/appPackage/outline.png new file mode 100644 index 0000000000000000000000000000000000000000..245fa194db6e08d30511fdbf26aec3c6e2c3c3c8 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND9BhG z9;9t*EM+Qm zy2D^Lfp=fIpwQyAe|y)?x-or<+J~Ptr@l6Mq%piHi4jOQ$W@+cm^^pek{T^R1~YT6 z#nC6He`LE*@cXCq-bL3hdgYxF$=uQYd!tVN6U(~0f70B<4PQ*lTGqqND0QE8cCxF; zrA^=emkHKQ+WI8@(#FJB4wBw$4jk;^oXcu!J2!Q;MX2;5u|xv~4xueIx7{LTWE)P* zx>U9|_qXolm|MHJvl^rhh$n1mem7%r%A<3y&veM1y2!zda7l7b Ve3c}0;w{jh44$rjF6*2UngINOfUy7o literal 0 HcmV?d00001 diff --git a/TeamsApp/env/.env.dev b/TeamsApp/env/.env.dev new file mode 100644 index 0000000..df4f9da --- /dev/null +++ b/TeamsApp/env/.env.dev @@ -0,0 +1,15 @@ +# This file includes environment variables that will be committed to git by default. + +# Built-in environment variables +TEAMSFX_ENV=dev +APP_NAME_SUFFIX=dev + +# Updating AZURE_SUBSCRIPTION_ID or AZURE_RESOURCE_GROUP_NAME after provision may also require an update to RESOURCE_SUFFIX, because some services require a globally unique name across subscriptions/resource groups. +AZURE_SUBSCRIPTION_ID= +AZURE_RESOURCE_GROUP_NAME= +RESOURCE_SUFFIX= + +# Generated during provision, you can also add your own variables. +BOT_ID= +TEAMS_APP_ID= +BOT_AZURE_APP_SERVICE_RESOURCE_ID= \ No newline at end of file diff --git a/TeamsApp/env/.env.local b/TeamsApp/env/.env.local new file mode 100644 index 0000000..0b8dcae --- /dev/null +++ b/TeamsApp/env/.env.local @@ -0,0 +1,14 @@ +# This file includes environment variables that can be committed to git. It's gitignored by default because it represents your local development environment. + +# Built-in environment variables +TEAMSFX_ENV=local +APP_NAME_SUFFIX=local + +# Generated during provision, you can also add your own variables. +BOT_ID=b0db6007-73c3-4991-917e-febe4a006bbc +TEAMS_APP_ID=2c04e52e-5fa2-4a7f-bee5-3f1945d4b7b7 +TEAMS_APP_TENANT_ID=20190830-5fd4-4a72-b8fd-1c1cb35b25bc + +BOT_ENDPOINT=https://8cvh8mwm-5130.brs.devtunnels.ms +BOT_DOMAIN=8cvh8mwm-5130.brs.devtunnels.ms +TEAMSFX_M365_USER_NAME=ricardo.carneiro@domvsit.com.br diff --git a/TeamsApp/infra/azure.bicep b/TeamsApp/infra/azure.bicep new file mode 100644 index 0000000..96ed8d8 --- /dev/null +++ b/TeamsApp/infra/azure.bicep @@ -0,0 +1,73 @@ +@maxLength(20) +@minLength(4) +@description('Used to generate names for all resources in this file') +param resourceBaseName string + +@description('Required when create Azure Bot service') +param botAadAppClientId string + +@secure() +@description('Required by Bot Framework package in your bot project') +param botAadAppClientSecret string + +param webAppSKU string + +@maxLength(42) +param botDisplayName string + +param serverfarmsName string = resourceBaseName +param webAppName string = resourceBaseName +param location string = resourceGroup().location + +// Compute resources for your Web App +resource serverfarm 'Microsoft.Web/serverfarms@2021-02-01' = { + kind: 'app' + location: location + name: serverfarmsName + sku: { + name: webAppSKU + } +} + +// Web App that hosts your bot +resource webApp 'Microsoft.Web/sites@2021-02-01' = { + kind: 'app' + location: location + name: webAppName + properties: { + serverFarmId: serverfarm.id + httpsOnly: true + siteConfig: { + appSettings: [ + { + name: 'WEBSITE_RUN_FROM_PACKAGE' + value: '1' + } + { + name: 'BOT_ID' + value: botAadAppClientId + } + { + name: 'BOT_PASSWORD' + value: botAadAppClientSecret + } + ] + ftpsState: 'FtpsOnly' + } + } +} + +// Register your web service as a bot with the Bot Framework +module azureBotRegistration './botRegistration/azurebot.bicep' = { + name: 'Azure-Bot-registration' + params: { + resourceBaseName: resourceBaseName + botAadAppClientId: botAadAppClientId + botAppDomain: webApp.properties.defaultHostName + botDisplayName: botDisplayName + } +} + +// The output will be persisted in .env.{envName}. Visit https://aka.ms/teamsfx-actions/arm-deploy for more details. +output BOT_AZURE_APP_SERVICE_RESOURCE_ID string = webApp.id +output BOT_DOMAIN string = webApp.properties.defaultHostName diff --git a/TeamsApp/infra/azure.parameters.json b/TeamsApp/infra/azure.parameters.json new file mode 100644 index 0000000..d710f2f --- /dev/null +++ b/TeamsApp/infra/azure.parameters.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceBaseName": { + "value": "bot${{RESOURCE_SUFFIX}}" + }, + "botAadAppClientId": { + "value": "${{BOT_ID}}" + }, + "botAadAppClientSecret": { + "value": "${{SECRET_BOT_PASSWORD}}" + }, + "webAppSKU": { + "value": "B1" + }, + "botDisplayName": { + "value": "IABotTeste" + } + } + } \ No newline at end of file diff --git a/TeamsApp/infra/botRegistration/azurebot.bicep b/TeamsApp/infra/botRegistration/azurebot.bicep new file mode 100644 index 0000000..ab67c7a --- /dev/null +++ b/TeamsApp/infra/botRegistration/azurebot.bicep @@ -0,0 +1,37 @@ +@maxLength(20) +@minLength(4) +@description('Used to generate names for all resources in this file') +param resourceBaseName string + +@maxLength(42) +param botDisplayName string + +param botServiceName string = resourceBaseName +param botServiceSku string = 'F0' +param botAadAppClientId string +param botAppDomain string + +// Register your web service as a bot with the Bot Framework +resource botService 'Microsoft.BotService/botServices@2021-03-01' = { + kind: 'azurebot' + location: 'global' + name: botServiceName + properties: { + displayName: botDisplayName + endpoint: 'https://${botAppDomain}/api/messages' + msaAppId: botAadAppClientId + } + sku: { + name: botServiceSku + } +} + +// Connect the bot service to Microsoft Teams +resource botServiceMsTeamsChannel 'Microsoft.BotService/botServices/channels@2021-03-01' = { + parent: botService + location: 'global' + name: 'MsTeamsChannel' + properties: { + channelName: 'MsTeamsChannel' + } +} diff --git a/TeamsApp/infra/botRegistration/readme.md b/TeamsApp/infra/botRegistration/readme.md new file mode 100644 index 0000000..d541624 --- /dev/null +++ b/TeamsApp/infra/botRegistration/readme.md @@ -0,0 +1 @@ +The `azurebot.bicep` module is provided to help you create Azure Bot service when you don't use Azure to host your app. If you use Azure as infrastrcture for your app, `azure.bicep` under infra folder already leverages this module to create Azure Bot service for you. You don't need to deploy `azurebot.bicep` again. \ No newline at end of file diff --git a/TeamsApp/launchSettings.json b/TeamsApp/launchSettings.json new file mode 100644 index 0000000..600bcab --- /dev/null +++ b/TeamsApp/launchSettings.json @@ -0,0 +1,15 @@ +{ + "profiles": { + // Launch project within Teams + "Microsoft Teams (browser)": { + "commandName": "Project", + "launchUrl": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&appTenantId=${{TEAMS_APP_TENANT_ID}}&login_hint=${{TEAMSFX_M365_USER_NAME}}", + }, + // Launch project within Teams App Test Tool + "Teams App Test Tool (browser)": { + "commandName": "Project", + "launchTestTool": true, + "launchUrl": "http://localhost:56150", + }, + } +} \ No newline at end of file diff --git a/TeamsApp/teamsapp.local.yml b/TeamsApp/teamsapp.local.yml new file mode 100644 index 0000000..1b1f13e --- /dev/null +++ b/TeamsApp/teamsapp.local.yml @@ -0,0 +1,70 @@ +# yaml-language-server: $schema=https://aka.ms/teams-toolkit/1.1.0/yaml.schema.json +# Visit https://aka.ms/teamsfx-v5.0-guide for details on this file +# Visit https://aka.ms/teamsfx-actions for details on actions +version: 1.1.0 + +provision: + # Creates a Teams app + - uses: teamsApp/create + with: + # Teams app name + name: IABotTeste${{APP_NAME_SUFFIX}} + # Write the information of created resources into environment file for + # the specified environment variable(s). + writeToEnvironmentFile: + teamsAppId: TEAMS_APP_ID + + # Create or reuse an existing Microsoft Entra application for bot. + - uses: botAadApp/create + with: + # The Microsoft Entra application's display name + name: IABotTeste${{APP_NAME_SUFFIX}} + writeToEnvironmentFile: + # The Microsoft Entra application's client id created for bot. + botId: BOT_ID + # The Microsoft Entra application's client secret created for bot. + botPassword: SECRET_BOT_PASSWORD + + # Generate runtime appsettings to JSON file + - uses: file/createOrUpdateJsonFile + with: + target: ../IABotTeste/appsettings.Development.json + content: + BOT_ID: ${{BOT_ID}} + BOT_PASSWORD: ${{SECRET_BOT_PASSWORD}} + + # Create or update the bot registration on dev.botframework.com + - uses: botFramework/create + with: + botId: ${{BOT_ID}} + name: IABotTeste + messagingEndpoint: ${{BOT_ENDPOINT}}/api/messages + description: "Aplicativo de teste de IA." + channels: + - name: msteams + + # Validate using manifest schema + - uses: teamsApp/validateManifest + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + # Build Teams app package with latest env value + - uses: teamsApp/zipAppPackage + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + outputJsonPath: ./appPackage/build/manifest.${{TEAMSFX_ENV}}.json + # Validate app package using validation rules + - uses: teamsApp/validateAppPackage + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + + # Apply the Teams app manifest to an existing Teams app in + # Teams Developer Portal. + # Will use the app id in manifest file to determine which Teams app to update. + - uses: teamsApp/update + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip diff --git a/TeamsApp/teamsapp.yml b/TeamsApp/teamsapp.yml new file mode 100644 index 0000000..8f16ed2 --- /dev/null +++ b/TeamsApp/teamsapp.yml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://aka.ms/teams-toolkit/1.1.0/yaml.schema.json +# Visit https://aka.ms/teamsfx-v5.0-guide for details on this file +# Visit https://aka.ms/teamsfx-actions for details on actions +version: 1.1.0 + +environmentFolderPath: ./env + +# Triggered when 'teamsapp provision' is executed +provision: + # Creates a Teams app + - uses: teamsApp/create + with: + # Teams app name + name: IABotTeste${{APP_NAME_SUFFIX}} + # Write the information of created resources into environment file for + # the specified environment variable(s). + writeToEnvironmentFile: + teamsAppId: TEAMS_APP_ID + + # Create or reuse an existing Microsoft Entra application for bot. + - uses: botAadApp/create + with: + # The Microsoft Entra application's display name + name: IABotTeste${{APP_NAME_SUFFIX}} + writeToEnvironmentFile: + # The Microsoft Entra application's client id created for bot. + botId: BOT_ID + # The Microsoft Entra application's client secret created for bot. + botPassword: SECRET_BOT_PASSWORD + + - uses: arm/deploy # Deploy given ARM templates parallelly. + with: + # AZURE_SUBSCRIPTION_ID is a built-in environment variable, + # if its value is empty, TeamsFx will prompt you to select a subscription. + # Referencing other environment variables with empty values + # will skip the subscription selection prompt. + subscriptionId: ${{AZURE_SUBSCRIPTION_ID}} + # AZURE_RESOURCE_GROUP_NAME is a built-in environment variable, + # if its value is empty, TeamsFx will prompt you to select or create one + # resource group. + # Referencing other environment variables with empty values + # will skip the resource group selection prompt. + resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}} + templates: + - path: ./infra/azure.bicep # Relative path to this file + # Relative path to this yaml file. + # Placeholders will be replaced with corresponding environment + # variable before ARM deployment. + parameters: ./infra/azure.parameters.json + # Required when deploying ARM template + deploymentName: Create-resources-for-bot + # Teams Toolkit will download this bicep CLI version from github for you, + # will use bicep CLI in PATH if you remove this config. + bicepCliVersion: v0.9.1 + + # Validate using manifest schema + - uses: teamsApp/validateManifest + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + # Build Teams app package with latest env value + - uses: teamsApp/zipAppPackage + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + outputJsonPath: ./appPackage/build/manifest.${{TEAMSFX_ENV}}.json + # Validate app package using validation rules + - uses: teamsApp/validateAppPackage + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + # Apply the Teams app manifest to an existing Teams app in + # Teams Developer Portal. + # Will use the app id in manifest file to determine which Teams app to update. + - uses: teamsApp/update + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + +# Triggered when 'teamsapp deploy' is executed +deploy: + - uses: cli/runDotnetCommand + with: + args: publish --configuration Release IABotTeste.csproj + workingDirectory: ../IABotTeste + # Deploy your application to Azure App Service using the zip deploy feature. + # For additional details, refer to https://aka.ms/zip-deploy-to-app-services. + - uses: azureAppService/zipDeploy + with: + # Deploy base folder + artifactFolder: bin/Release/net8.0/publish + # The resource id of the cloud resource to be deployed to. + # This key will be generated by arm/deploy action automatically. + # You can replace it with your existing Azure Resource id + # or add it to your environment variable file. + resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}} + workingDirectory: ../IABotTeste +projectId: 9c8fb6c9-2afe-4e09-bbda-a23b6c3f07e8