Skip to content

Commit 060617f

Browse files
wip
1 parent a454f66 commit 060617f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+36609
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# TeamsFx files
2+
env/.env.*.user
3+
env/.env.local
4+
.DS_Store
5+
.localConfigs
6+
build
7+
appPackage/build
8+
9+
# dependencies
10+
/node_modules
11+
12+
# testing
13+
/coverage
14+
15+
# production
16+
/build
17+
18+
# misc
19+
.DS_Store
20+
.env
21+
.deployment
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
aad.manifest.*.json
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "Launch Remote in Teams (Edge)",
6+
"type": "msedge",
7+
"request": "launch",
8+
"url": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}",
9+
"presentation": {
10+
"group": "group 1: Teams",
11+
"order": 3
12+
},
13+
"internalConsoleOptions": "neverOpen"
14+
},
15+
{
16+
"name": "Launch Remote in Teams (Chrome)",
17+
"type": "chrome",
18+
"request": "launch",
19+
"url": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}",
20+
"presentation": {
21+
"group": "group 1: Teams",
22+
"order": 3
23+
},
24+
"internalConsoleOptions": "neverOpen"
25+
},
26+
{
27+
"name": "Launch Remote in Outlook (Edge)",
28+
"type": "msedge",
29+
"request": "launch",
30+
"url": "https://outlook.office.com/host/${{M365_APP_ID}}?${account-hint}",
31+
"presentation": {
32+
"group": "group 2: Outlook",
33+
"order": 3
34+
},
35+
"internalConsoleOptions": "neverOpen"
36+
},
37+
{
38+
"name": "Launch Remote in Outlook (Chrome)",
39+
"type": "chrome",
40+
"request": "launch",
41+
"url": "https://outlook.office.com/host/${{M365_APP_ID}}?${account-hint}",
42+
"presentation": {
43+
"group": "group 2: Outlook",
44+
"order": 3
45+
},
46+
"internalConsoleOptions": "neverOpen"
47+
},
48+
{
49+
"name": "Launch Remote in the Microsoft 365 app (Edge)",
50+
"type": "msedge",
51+
"request": "launch",
52+
"url": "https://www.office.com/m365apps/${{M365_APP_ID}}?auth=2&${account-hint}",
53+
"presentation": {
54+
"group": "group 3: the Microsoft 365 app",
55+
"order": 3
56+
},
57+
"internalConsoleOptions": "neverOpen"
58+
},
59+
{
60+
"name": "Launch Remote in the Microsoft 365 app (Chrome)",
61+
"type": "chrome",
62+
"request": "launch",
63+
"url": "https://www.office.com/m365apps/${{M365_APP_ID}}?auth=2&${account-hint}",
64+
"presentation": {
65+
"group": "group 3: the Microsoft 365 app",
66+
"order": 3
67+
},
68+
"internalConsoleOptions": "neverOpen"
69+
},
70+
{
71+
"name": "Attach to Frontend in Teams (Edge)",
72+
"type": "msedge",
73+
"request": "launch",
74+
"url": "https://teams.microsoft.com/l/app/${{local:TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}",
75+
"presentation": {
76+
"group": "all",
77+
"hidden": true
78+
},
79+
"internalConsoleOptions": "neverOpen"
80+
},
81+
{
82+
"name": "Attach to Frontend in Teams (Chrome)",
83+
"type": "chrome",
84+
"request": "launch",
85+
"url": "https://teams.microsoft.com/l/app/${{local:TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}",
86+
"presentation": {
87+
"group": "all",
88+
"hidden": true
89+
},
90+
"internalConsoleOptions": "neverOpen"
91+
},
92+
{
93+
"name": "Attach to Frontend in Outlook (Edge)",
94+
"type": "msedge",
95+
"request": "launch",
96+
"url": "https://outlook.office.com/host/${{local:M365_APP_ID}}?${account-hint}",
97+
"presentation": {
98+
"group": "all",
99+
"hidden": true
100+
},
101+
"internalConsoleOptions": "neverOpen"
102+
},
103+
{
104+
"name": "Attach to Frontend in Outlook (Chrome)",
105+
"type": "chrome",
106+
"request": "launch",
107+
"url": "https://outlook.office.com/host/${{local:M365_APP_ID}}?${account-hint}",
108+
"presentation": {
109+
"group": "all",
110+
"hidden": true
111+
},
112+
"internalConsoleOptions": "neverOpen"
113+
},
114+
{
115+
"name": "Attach to Frontend in the Microsoft 365 app (Edge)",
116+
"type": "msedge",
117+
"request": "launch",
118+
"url": "https://www.office.com/m365apps/${{local:M365_APP_ID}}?auth=2&${account-hint}",
119+
"presentation": {
120+
"group": "all",
121+
"hidden": true
122+
},
123+
"internalConsoleOptions": "neverOpen"
124+
},
125+
{
126+
"name": "Attach to Frontend in the Microsoft 365 app (Chrome)",
127+
"type": "chrome",
128+
"request": "launch",
129+
"url": "https://www.office.com/m365apps/${{local:M365_APP_ID}}?auth=2&${account-hint}",
130+
"presentation": {
131+
"group": "all",
132+
"hidden": true
133+
},
134+
"internalConsoleOptions": "neverOpen"
135+
}
136+
],
137+
"compounds": [
138+
{
139+
"name": "Debug in Teams (Edge)",
140+
"configurations": [
141+
"Attach to Frontend in Teams (Edge)"
142+
],
143+
"preLaunchTask": "Start Teams App Locally",
144+
"presentation": {
145+
"group": "group 1: Teams",
146+
"order": 1
147+
},
148+
"stopAll": true
149+
},
150+
{
151+
"name": "Debug in Teams (Chrome)",
152+
"configurations": [
153+
"Attach to Frontend in Teams (Chrome)"
154+
],
155+
"preLaunchTask": "Start Teams App Locally",
156+
"presentation": {
157+
"group": "group 1: Teams",
158+
"order": 2
159+
},
160+
"stopAll": true
161+
},
162+
{
163+
"name": "Debug in Outlook (Edge)",
164+
"configurations": [
165+
"Attach to Frontend in Outlook (Edge)"
166+
],
167+
"preLaunchTask": "Start Teams App Locally",
168+
"presentation": {
169+
"group": "group 2: Outlook",
170+
"order": 1
171+
},
172+
"stopAll": true
173+
},
174+
{
175+
"name": "Debug in Outlook (Chrome)",
176+
"configurations": [
177+
"Attach to Frontend in Outlook (Chrome)"
178+
],
179+
"preLaunchTask": "Start Teams App Locally",
180+
"presentation": {
181+
"group": "group 2: Outlook",
182+
"order": 2
183+
},
184+
"stopAll": true
185+
},
186+
{
187+
"name": "Debug in the Microsoft 365 app (Edge)",
188+
"configurations": [
189+
"Attach to Frontend in the Microsoft 365 app (Edge)"
190+
],
191+
"preLaunchTask": "Start Teams App Locally",
192+
"presentation": {
193+
"group": "group 3: the Microsoft 365 app",
194+
"order": 1
195+
},
196+
"stopAll": true
197+
},
198+
{
199+
"name": "Debug in the Microsoft 365 app (Chrome)",
200+
"configurations": [
201+
"Attach to Frontend in the Microsoft 365 app (Chrome)"
202+
],
203+
"preLaunchTask": "Start Teams App Locally",
204+
"presentation": {
205+
"group": "group 3: the Microsoft 365 app",
206+
"order": 2
207+
},
208+
"stopAll": true
209+
}
210+
]
211+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"debug.onTaskErrors": "abort",
3+
"json.schemas": [
4+
{
5+
"fileMatch": [
6+
"/aad.*.json"
7+
],
8+
"schema": {}
9+
}
10+
]
11+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
// This file is automatically generated by Teams Toolkit.
2+
// The teamsfx tasks defined in this file require Teams Toolkit version >= 5.0.0.
3+
// See https://aka.ms/teamsfx-tasks for details on how to customize each task.
4+
{
5+
"version": "2.0.0",
6+
"tasks": [
7+
{
8+
"label": "Start Teams App Locally",
9+
"dependsOn": [
10+
"Validate prerequisites",
11+
"Provision",
12+
"Deploy",
13+
"Start application"
14+
],
15+
"dependsOrder": "sequence"
16+
},
17+
{
18+
// Check all required prerequisites.
19+
// See https://aka.ms/teamsfx-tasks/check-prerequisites to know the details and how to customize the args.
20+
"label": "Validate prerequisites",
21+
"type": "teamsfx",
22+
"command": "debug-check-prerequisites",
23+
"args": {
24+
"prerequisites": [
25+
"nodejs", // Validate if Node.js is installed.
26+
"m365Account", // Sign-in prompt for Microsoft 365 account, then validate if the account enables the sideloading permission.
27+
"portOccupancy" // Validate available ports to ensure those debug ones are not occupied.
28+
],
29+
"portOccupancy": [
30+
53000 // tab service port
31+
]
32+
}
33+
},
34+
{
35+
// Create the debug resources.
36+
// See https://aka.ms/teamsfx-tasks/provision to know the details and how to customize the args.
37+
"label": "Provision",
38+
"type": "teamsfx",
39+
"command": "provision",
40+
"args": {
41+
"env": "local"
42+
}
43+
},
44+
{
45+
// Build project.
46+
// See https://aka.ms/teamsfx-tasks/deploy to know the details and how to customize the args.
47+
"label": "Deploy",
48+
"type": "teamsfx",
49+
"command": "deploy",
50+
"args": {
51+
"env": "local"
52+
}
53+
},
54+
{
55+
"label": "Start application",
56+
"dependsOn": [
57+
"Start frontend"
58+
]
59+
},
60+
{
61+
"label": "Start frontend",
62+
"type": "shell",
63+
"command": "npm run dev:teamsfx",
64+
"isBackground": true,
65+
"options": {
66+
"cwd": "${workspaceFolder}"
67+
},
68+
"problemMatcher": {
69+
"pattern": {
70+
"regexp": "^.*$",
71+
"file": 0,
72+
"location": 1,
73+
"message": 2
74+
},
75+
"background": {
76+
"activeOnStart": true,
77+
"beginsPattern": ".*",
78+
"endsPattern": "Compiled|Failed|compiled|failed"
79+
}
80+
}
81+
}
82+
]
83+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Personal tab across Microsoft 365
2+
3+
Personal tabs provide a great way to enhance the Microsoft Teams experience. Using personal tabs, you can provide a user access to their application right within Teams, without the user having to leave the experience or sign in again. Now, personal tabs can light up within other Microsoft 365 applications. You can build and run your personal tabs in Teams, both Outlook desktop and web experiences, and also the Microsoft 365 app on the web.
4+
5+
![Personal tab demo](https://user-images.githubusercontent.com/11220663/167839153-0aef6adc-450e-4b8c-a28f-7d27005d1093.png)
6+
7+
## Prerequisites
8+
9+
- [Node.js](https://nodejs.org/), supported versions: 16, 18
10+
- An M365 account. If you do not have M365 account, apply one from [M365 developer program](https://developer.microsoft.com/microsoft-365/dev-program)
11+
- [Set up your dev environment for extending Teams apps across Microsoft 365](https://aka.ms/teamsfx-m365-apps-prerequisites)
12+
> Please note that after you enrolled your developer tenant in Office 365 Target Release, it may take couple days for the enrollment to take effect.
13+
- [Teams Toolkit Visual Studio Code Extension](https://aka.ms/teams-toolkit) version 5.0.0 and higher or [TeamsFx CLI](https://aka.ms/teamsfx-cli)
14+
15+
## Getting Started
16+
17+
Follow below instructions to get started with this application template for local debugging.
18+
19+
### Test your application with Visual Studio Code
20+
21+
1. Press `F5` or use the `Run and Debug Activity Panel` in Visual Studio Code.
22+
1. Select a target Microsoft 365 application where the personal tabs can run: `Debug in Teams`, `Debug in Outlook` or `Debug in the Microsoft 365 app` and click the `Run and Debug` green arrow button.
23+
24+
### Test your application with TeamsFx CLI
25+
26+
1. Executing the command `teamsfx provision --env local` in your project directory.
27+
1. Executing the command `teamsfx deploy --env local` in your project directory.
28+
1. Executing the command `teamsfx preview --env local --m365-host <m365-host>` in your project directory, where options for `m365-host` are `teams`, `outlook` or `office`.
29+
30+
## References
31+
32+
* [Extend a Teams personal tabs across Microsoft 365](https://docs.microsoft.com/microsoftteams/platform/m365-apps/extend-m365-teams-personal-tab?tabs=manifest-teams-toolkit)
33+
* [Teams Toolkit Documentations](https://docs.microsoft.com/microsoftteams/platform/toolkit/teams-toolkit-fundamentals)
34+
* [Teams Toolkit CLI](https://docs.microsoft.com/microsoftteams/platform/toolkit/teamsfx-cli)
35+
* [TeamsFx SDK](https://docs.microsoft.com/microsoftteams/platform/toolkit/teamsfx-sdk)
36+
* [Teams Toolkit Samples](https://github.com/OfficeDev/TeamsFx-Samples)

0 commit comments

Comments
 (0)