Skip to content

Commit

Permalink
Merge pull request #1206 from OfficeDev/v-hrajandira/CsharpToolkitMig…
Browse files Browse the repository at this point in the history
…ration

PR 1 - Implement toolkit csharp samples
  • Loading branch information
Harikrishnan-MSFT authored May 30, 2024
2 parents 2d66ce5 + 9f349ab commit 2b85e97
Show file tree
Hide file tree
Showing 56 changed files with 1,575 additions and 116 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# TeamsFx files
build
AppManifest/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
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
"manifestVersion": "1.16",
"version": "1.0.0",
"id": "<<MICROSOFT-APP-ID>>",
"id": "${{TEAMS_APP_ID}}",
"packageName": "com.microsoft.teams.botgroupchatmessages",
"developer": {
"name": "Microsoft",
Expand All @@ -24,7 +24,7 @@
},
"bots": [
{
"botId": "<<MICROSOFT-APP-ID>>",
"botId": "${{AAD_APP_CLIENT_ID}}",
"scopes": [
"team",
"personal",
Expand All @@ -40,11 +40,11 @@
"messageTeamMembers"
],
"validDomains": [
"<<DOMAIN-NAME>>",
"${{BOT_DOMAIN}}",
"token.botframework.com"
],
"webApplicationInfo": {
"id": "<<MICROSOFT-APP-ID>>",
"resource": "api://botid-<<MICROSOFT-APP-ID>>"
"id": "${{AAD_APP_CLIENT_ID}}",
"resource": "api://botid-${{AAD_APP_CLIENT_ID}}"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,8 @@
<None Include="wwwroot\chat.txt" />
</ItemGroup>

<ItemGroup>
<ProjectCapability Include="TeamsFx" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:3978",
"sslPort": 0
}
},
"$schema": "http://json.schemastore.org/launchsettings.json",
{
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"EchoBot": {
// Debug project within Teams
"Microsoft Teams (browser)": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "https://teams.microsoft.com/l/app/%TEAMSAPPID%?installAppPackage=true&webjoin=true&appTenantId=%TENANTID%&login_hint=%USERNAME%",
"applicationUrl": "https://localhost:7130;http://localhost:5130",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:3978"
"hotReloadProfile": "aspnetcore"
}
//// Uncomment following profile to debug project only (without launching Teams)
//,
//"Start Project (not in Teams)": {
// "commandName": "Project",
// "dotnetRunMessages": true,
// "launchBrowser": true,
// "applicationUrl": "https://localhost:7130;http://localhost:5130",
// "environmentVariables": {
// "ASPNETCORE_ENVIRONMENT": "Development"
// },
// "hotReloadProfile": "aspnetcore"
//}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
{
"id": "${{AAD_APP_OBJECT_ID}}",
"appId": "${{AAD_APP_CLIENT_ID}}",
"name": "bot-archive-groupchat-messages-aad",
"accessTokenAcceptedVersion": 2,
"signInAudience": "AzureADMultipleOrgs",
"oauth2AllowIdTokenImplicitFlow": true,
"oauth2AllowImplicitFlow": true,
"optionalClaims": {
"idToken": [],
"accessToken": [
{
"name": "idtyp",
"source": null,
"essential": false,
"additionalProperties": []
}
],
"saml2Token": []
},
"requiredResourceAccess": [
{
"resourceAppId": "Microsoft Graph",
"resourceAccess": [
{
"id": "User.Read",
"type": "Scope"
},
{
"id": "Chat.ReadWrite",
"type": "Scope"
},
{
"id": "ChatMessage.Read",
"type": "Scope"
}
]
}
],
"oauth2Permissions": [
{
"adminConsentDescription": "Allows Teams to call the app's web APIs as the current user.",
"adminConsentDisplayName": "Teams can access app's web APIs",
"id": "${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}",
"isEnabled": true,
"type": "User",
"userConsentDescription": "Enable Teams to call this app's web APIs with the same rights that you have",
"userConsentDisplayName": "Teams can access app's web APIs and make requests on your behalf",
"value": "access_as_user"
}
],
"preAuthorizedApplications": [
{
"appId": "1fec8e78-bce4-4aaf-ab1b-5451cc387264",
"permissionIds": [
"${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}"
]
},
{
"appId": "5e3ce6c0-2b1f-4285-8d4b-75ee78787346",
"permissionIds": [
"${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}"
]
},
{
"appId": "d3590ed6-52b3-4102-aeff-aad2292ab01c",
"permissionIds": [
"${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}"
]
},
{
"appId": "00000002-0000-0ff1-ce00-000000000000",
"permissionIds": [
"${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}"
]
},
{
"appId": "bc59ab01-8403-45c6-8796-ac3ef710b3e3",
"permissionIds": [
"${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}"
]
},
{
"appId": "0ec893e0-5785-4de6-99da-4ed124e5296c",
"permissionIds": [
"${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}"
]
},
{
"appId": "4765445b-32c6-49b0-83e6-1d93765276ca",
"permissionIds": [
"${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}"
]
},
{
"appId": "4345a7b9-9a63-4910-a426-35363201d503",
"permissionIds": [
"${{AAD_APP_ACCESS_AS_USER_PERMISSION_ID}}"
]
}
],
"identifierUris": [
"api://botid-${{AAD_APP_CLIENT_ID}}"
],
"replyUrlsWithType":[
{
"url": "https://${{BOT_DOMAIN}}/auth-end.html",
"type": "Web"
},
{
"url": "https://token.botframework.com/.auth/web/redirect",
"type": "Web"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 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=
TEAMS_APP_ID=
BOT_DOMAIN=
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
@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

param aadAppClientId string
@secure()
param aadAppClientSecret string
param microsoftAppType string
param microsoftAppTenantId 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
msaAppType: microsoftAppType
msaAppTenantId: microsoftAppType == 'SingleTenant' ? microsoftAppTenantId : ''
}
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'
}
}

resource botServiceConnection 'Microsoft.BotService/botServices/connections@2021-03-01' = {
parent: botService
name: 'oauthbotsetting'
location: 'global'
properties: {
serviceProviderDisplayName: 'Azure Active Directory v2'
serviceProviderId: '30dd229c-58e3-4a48-bdfd-91ec48eb906c'
scopes: 'User.Read'
parameters: [
{
key: 'clientId'
value: aadAppClientId
}
{
key: 'clientSecret'
value: aadAppClientSecret
}
{
key: 'tenantID'
value: microsoftAppTenantId
}
{
key: 'tokenExchangeUrl'
value: 'api://botid-${aadAppClientId}'
}
]
}
}

output CONNECTION_NAME string = botServiceConnection.name
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"$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": "${{AAD_APP_CLIENT_ID}}"
},
"botAppDomain": {
"value": "${{BOT_DOMAIN}}"
},
"botDisplayName": {
"value": "bot-archive-groupchat-messages"
},
"aadAppClientId": {
"value": "${{AAD_APP_CLIENT_ID}}"
},
"aadAppClientSecret": {
"value": "${{SECRET_AAD_APP_CLIENT_SECRET}}"
},
"microsoftAppType": {
"value": "${{MICROSOFT_APP_TYPE}}"
},
"microsoftAppTenantId": {
"value": "${{MICROSOFT_APP_TENANT_ID}}"
}
}
}
Loading

0 comments on commit 2b85e97

Please sign in to comment.