Teams アプリにタブ機能を追加する
タブは、Microsoft Teamsに埋め込まれた Web ページです。 タブは、アプリ マニフェスト (以前は Teams アプリ マニフェスト) で宣言されたドメインを指す単純な HTML iframe
タグとして機能します。 個々のユーザーのチーム、グループ チャット、または個人用アプリ内のチャネル内の Teams アプリにタブを機能として追加できます。 アプリにカスタム タブを含めて独自の Web コンテンツを Teams に埋め込んだり、Teams 固有の機能を Web コンテンツに追加したりできます。 詳細については、「 Teams のビルド タブ」を参照してください。
開始する前に、タブ アプリを作成して実行することをお勧めします。 詳細については、「 Teams Toolkit を使用してタブ アプリを作成する」を参照してください。
前提条件
Teams アプリでタブ機能を構成するには、次の前提条件が満たされていることを確認します。
- Teams アプリとそのアプリ マニフェスト ファイル
- アプリをテストするための Microsoft 365 アカウント
- Microsoft Azure アカウント
Teams アプリの [構成] タブ
次の手順は、Teams アプリでタブ機能を構成するのに役立ちます。
ヒント
サーバー側のタブ アプリを開発する場合は、フォルダー構造、デバッグ プロファイル、または bicep インフラストラクチャを更新する必要はありません。 ボット サービスのタブに新しいルートを追加し、Teams Toolkit でアプリ マニフェストを更新します。 詳細については、「 サンプル アプリ」を参照してください。
アプリ マニフェストの更新
個人用チャット、グループ チャット、またはチャネル内でタブを構成するには、
manifest.json
ファイルを次のコードで更新します。"staticTabs": [ { "entityId": "index", "name": "Personal Tab", "contentUrl": "${{TAB_ENDPOINT}}/index.html#/tab", "websiteUrl": "${{TAB_ENDPOINT}}/index.html#/tab", "scopes": [ "personal", "groupChat", "team" ] } ],
タブのドメインで
validDomains
の値を更新します。"validDomains": [ "${{TAB_DOMAIN}}" ],
注:
TAB_ENDPOINT
とTAB_DOMAIN
は Teams Toolkit の組み込み変数です。 これらは、現在の環境に基づいて実行時に真のエンドポイントに置き換えられます。
ローカル デバッグ環境のセットアップ
Visual Studio Code でタブ アプリ コードをプロジェクトに取り込みます。 ない場合は、 Teams Toolkit を使用して新しいタブ アプリを作成 し、ソース コードを現在のプロジェクトにコピーできます。 既定では、タブ アプリのフォルダー構造は次のようになります。
|-- appPackage/ |-- env/ |-- infra/ |-- tab/ <!--tab app source code--> | |-- src/ | | |-- app.ts | |-- package.json |-- index.ts <!--your current source code--> |-- package.json |-- teamsapp.yml
フォルダー構造を次のように再構成します。
|-- appPackage/ |-- infra/ |-- tab/ <!--tab app source code--> | |-- src/ | | |-- app.ts | |-- package.json |-- bot/ <!--move your current source code to a new sub folder--> | |-- index.ts | |-- package.json |-- teamsapp.yml
フォルダー構造に合わせて、
teamsapp.yml
ファイルとteamsapp.local.yml
ファイルの次のコードを更新します。deploy: # Run npm command - uses: cli/runNpmCommand with: args: install --no-audit workingDirectory: ./bot
タブ プロジェクトのデバッグ プロファイルを構成するには、
tasks.json
ファイルに次のコードを追加します。{ "label": "Start application", "dependsOn": [ "Start bot", "Start frontend" ] }, { "label": "Start bot", "type": "shell", "command": "npm run dev:teamsfx", "isBackground": true, "options": { "cwd": "${workspaceFolder}/bot" }, "problemMatcher": { "pattern": [ { "regexp": "^.*$", "file": 0, "location": 1, "message": 2 } ], "background": { "activeOnStart": true, "beginsPattern": "[nodemon] starting", "endsPattern": "restify listening to|Bot/ME service listening at|[nodemon] app crashed" } } }, { "label": "Start frontend", "type": "shell", "command": "npm run dev:teamsfx", "isBackground": true, "options": { "cwd": "${workspaceFolder}/tab" }, "problemMatcher": { "pattern": { "regexp": "^.*$", "file": 0, "location": 1, "message": 2 }, "background": { "activeOnStart": true, "beginsPattern": ".*", "endsPattern": "Compiled|Failed|compiled|failed" } } }
デバッグ プロファイルを構成する方法の詳細については、「 サンプル アプリ」を参照してください。
タブ プロジェクトで Teams Toolkit を操作できるようにするには、
teamsapp.local.yml
ファイルに次のアクションを追加します。provision: - uses: script # Set TAB_DOMAIN for local launch name: Set TAB_DOMAIN for local launch with: run: echo "::set-output TAB_DOMAIN=localhost:53000" - uses: script # Set TAB_ENDPOINT for local launch name: Set TAB_ENDPOINT for local launch with: run: echo "::set-output TAB_ENDPOINT=https://localhost:53000" deploy: - uses: devTool/install # Install development tool(s) with: devCert: trust: true writeToEnvironmentFile: # Write the information of installed development tool(s) into environment file for the specified environment variable(s). sslCertFile: SSL_CRT_FILE sslKeyFile: SSL_KEY_FILE - uses: cli/runNpmCommand # Run npm command with: args: install --no-audit workingDirectory: ./tab - uses: file/createOrUpdateEnvironmentFile # Generate runtime environment variables for tab with: target: ./tab/.localConfigs envs: BROWSER: none HTTPS: true PORT: 53000 SSL_CRT_FILE: ${{SSL_CRT_FILE}} SSL_KEY_FILE: ${{SSL_KEY_FILE}}
F5 キーを選択して、アプリをローカルでデバッグします。
アプリを Azure にプロビジョニングする
サーバー側のタブ アプリを作成するには、bicep ファイルや Azure インフラストラクチャを更新する必要はありません。 タブ アプリは、ボットと同じAzure App Serviceでホストできます。
タブ アプリ用に Azure Static Web アプリをプロビジョニングするには、次のコードを
azure.bicep
ファイルに追加します。@maxLength(20) @minLength(4) param resourceBaseName string param storageSku string param staticWebAppName string = resourceBaseName // Azure Static Web Apps that hosts your static web site resource swa 'Microsoft.Web/staticSites@2022-09-01' = { name: staticWebAppName // SWA do not need location setting location: 'centralus' sku: { name: staticWebAppSku tier: staticWebAppSku } properties: {} } var siteDomain = swa.properties.defaultHostname output AZURE_STATIC_WEB_APPS_RESOURCE_ID string = swa.id output TAB_DOMAIN string = siteDomain output TAB_ENDPOINT string = 'https://${siteDomain}'
必要なパラメーターが正しく設定されていることを確認するには、
azure.parameters.json
ファイルを次のように更新します。{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "resourceBaseName": { "value": "helloworld${{RESOURCE_SUFFIX}}" }, "storageSku": { "value": "Free" }, } }
タブ アプリをAzure Static Web Appsでホストするには、
teamsapp.yml
ファイルでazureStaticWebApps/getDeploymentToken
アクションを定義します。 アクションは、bicep デプロイの出力であるAZURE_STATIC_WEB_APPS_RESOURCE_ID
に依存します。arm/deploy
アクションの後に次のコードを追加します。provision: ... - uses: arm/deploy ... # Add this action - uses: azureStaticWebApps/getDeploymentToken with: resourceId: ${{AZURE_STATIC_WEB_APPS_RESOURCE_ID}} writeToEnvironmentFile: deploymentToken: SECRET_TAB_SWA_DEPLOYMENT_TOKEN ...
[表示>コマンド パレット.... に移動するか、Ctrl + Shift + P キーを押します。
コマンド
Teams: Provision
入力して、bicep を Azure に適用します。タブ アプリのビルドとデプロイを自動化するには、次の
build
アクションとdeploy
アクションをteamsapp.yml
ファイルに追加します。- uses: cli/runNpmCommand # Run npm command with: args: install workingDirectory: ./tab - uses: cli/runNpmCommand # Run npm command with: args: run build workingDirectory: ./tab # Deploy bits to Azure Storage Static Website - uses: cli/runNpxCommand name: deploy to Azure Static Web Apps with: args: '@azure/static-web-apps-cli deploy ./build -d ${{SECRET_TAB_SWA_DEPLOYMENT_TOKEN}} --env production'
[表示>コマンド パレット.... に移動するか、Ctrl + Shift + P キーを押します。
「
Teams: Deploy
」と入力して、タブ アプリ コードを Azure にデプロイします。[ 実行とデバッグ] で、[ リモートの起動 (Edge)] または [ リモートの起動 (Chrome)] を選択します。
F5 キーを選択して、Teams アプリをデバッグしてプレビューします。
次の手順
関連項目
Platform Docs