Teams アプリに Outlook アドインを追加する
概要
Outlook アドイン は、Outlook の機能を拡張する Web アプリです。 Outlook アドインを使用すると、次のことができます。
- メール メッセージを読み書きし、会議出席依頼、返信、キャンセル、予定に参加します。
- ユーザーのメールボックスのプロパティを読み取る。
- メールの送信など、イベントに自動的に応答します。
- CRM やプロジェクト管理ツールを含む外部サービスと統合します。
- カスタム リボン ボタンまたはメニュー項目を追加して、特定のタスクを実行します。
Outlook アドインと Teams アプリケーションを統合すると、どちらも個別に実現できないシナリオが可能になります。 営業担当者が顧客に電子メールでカスタマイズされた割引を挿入し、バックエンド データベースにオファーを記録できるシナリオを考えてみましょう。 セールス マネージャーは、[Teams] タブで提供されているすべての割引に関するデータを表示することもできます。詳細については、「 割引プランのサンプル」を参照してください。
Outlook アドインの概要 には、Outlook アドインの機能、それらの構成方法、Outlook を拡張する以前の方法での改善方法、アドインを実行できるプラットフォーム (Windows、Mac、モバイル、Web)、および作成を開始する方法について説明します。
この記事では、Outlook アドインを Teams アプリに追加し、テストしてから Azure にデプロイする手順について説明します。
前提条件
開始する前に、次の要件を満たしていることを確認してください。
- アプリケーションをテストするための Teams を含む Microsoft 365 アカウント。 または、Microsoft 365 と Teams の両方に個別のサブスクリプションを作成することもできます。 たとえば、 Microsoft 365 開発者プログラムを通じて *.onmicrosoft.com を持つテスト アカウントなどです。
- Microsoft 365 アカウントは、デスクトップ Outlook のアカウントとして追加されます。 詳細については、「 Outlook にメール アカウントを追加する」を参照してください。
- Teams アプリを Azure にデプロイするためのアクティブなサブスクリプションを持つ Azure アカウント。 お持ちでない場合は、 無料の Azure アカウントを作成できます。
- 最新バージョンの Teams Toolkit を使用して作成された Teams アプリ。
Teams アプリに Outlook アドインを追加する
Teams アプリに Outlook アドインを追加するには:
- Teams アプリ プロジェクトを準備します。
- 最初は Teams アプリ プロジェクトとは別の Office アドイン プロジェクトを作成します。
- Outlook アドイン プロジェクトから Microsoft 365 の統合マニフェストにマニフェストをマージします。
- Outlook アドイン ファイルを Teams アプリ プロジェクトにコピーします。
- ツール構成ファイルを編集します。
- アプリとアドインを同時にローカルで実行する
- アプリケーションを Azure に移動します。
Teams アプリ プロジェクトを準備する
まず、タブ (またはボット) のソース コードを独自のサブフォルダーに分離します。 これらの手順では、プロジェクトが最初に次の構造を持っていることを前提としています。 この構造の Teams アプリ プロジェクトを作成するには、最新の Teams Toolkit バージョンを使用します。
|-- .vscode/
|-- appPackage/
|-- build
|-- env/
|-- infra/
|-- node_modules/
|-- src/
|-- .gitignore
|-- .localConfigs
|-- .webappignore
|-- package-lock.json
|-- package.json
|-- teamsapp.local.yml
|-- teamsapp.yml
|-- tsconfig.json
|-- web.config
注:
新しい Teams タブ プロジェクトを使用している場合、node_modules フォルダーとpackage-lock.json ファイルは存在しません。 node_modulesは、プロジェクトのルートで実行 npm install
するときに、後の手順で作成されます。 ビルド フォルダーは、プロジェクトでビルド スクリプトを実行するまで存在しません。
タブまたはボットのソース コードを分離するには、次の手順を実行します。
ルートの名前付き タブ (または ボット) の下にフォルダーを作成します。
注:
わかりやすくするために、この記事の残りの部分では、既存の Teams アプリがタブであることを前提としています。ボットを使い始めた場合は、さまざまなファイルに追加または編集するコンテンツを含め、これらすべての手順で "tab" を "bot" に置き換えます。
infra フォルダーを新しいサブフォルダーにコピーし、新しいタブ>infra フォルダーからファイルを削除
azure.parameters.json
します。node_modulesフォルダーと src フォルダーを新しいサブフォルダーに移動します。
、
package-lock.json
、、tsconfig.json
package.json
および ファイルを.webappignore
web.config
新しいサブフォルダーに移動します。|-- .vscode/ |-- appPackage/ |-- build |-- env/ |-- infra/ |-- tab/ |-- |-- infra/ |-- |-- node_modules/ |-- |-- src/ |-- |-- .webappignore |-- |-- package-lock.json |-- |-- package.json |-- |-- tsconfig.json |-- |-- web.config |-- .gitignore |-- .localConfigs |-- teamsapp.local.yml |-- teamsapp.yml
package.json
タブ フォルダーに移動したばかりの で、 オブジェクトから という名前dev:teamsfx
のスクリプトをscripts
削除します。 このスクリプトは、次の手順で新しいpackage.json
スクリプトに追加されます。プロジェクトのルートに という名前
package.json
の新しいファイルを作成し、次の内容を追加します。{ "name": "CombinedTabAndAddin", "version": "0.0.1", "author": "Contoso", "scripts": { "dev:teamsfx": "env-cmd --silent -f .localConfigs npm run start:tab", "build:tab": "cd tab && npm run build", "install:tab": "cd tab && npm install", "start:tab": "cd tab && npm run start", "test": "echo \"Error: no test specified\" && exit 1" }, "devDependencies": { "@microsoft/teamsfx-cli": "2.0.2-alpha.4f379e6ab.0", "@microsoft/teamsfx-run-utils": "alpha", "env-cmd": "^10.1.0", "office-addin-dev-settings": "^2.0.3", "ncp": "^2.0.0" } }
必要に
name
version
応じて、、、およびauthor
プロパティを変更します。プロジェクトの
teamsapp.yml
ルートでファイルを開き、行ignoreFile: .webappignore
を見つけて にignoreFile: ./tab/.webappignore
変更します。プロジェクトの
teamsapp.local.yml
ルートでファイルを開き、行args: install --no-audit
を見つけて、これを にargs: run install:tab --no-audit
変更します。Visual Studio Code で TERMINAL を 開きます。 プロジェクトのルートに移動し、 を実行します
npm install
。 新しいnode_modules
フォルダーと新package.lock.json
しいファイルがプロジェクト ルートに作成されます。次に を実行
npm run install:tab
します。 新しいnode_modules
フォルダーと新package.lock.json
しいファイルがまだ存在しない場合は、タブ フォルダーに作成されます。次の手順でタブをサイドロードできることを確認します。
Teams Toolkit を開きます。
[ ACCOUNTS ] セクションで、Microsoft 365 アカウントにサインインしていることを確認します。
[Visual Studio Code で実行の表示]を選択します>。
[ 実行とデバッグ ] ドロップダウン メニューで、[ Teams (Edge)] で [デバッグ ] を選択し、F5 キーを押します。
プロジェクトがビルドされ、実行されます。 このプロセスには数分かかることがあります。 完了すると、Teams はブラウザーで開き、タブ アプリを追加するように求められます。
注:
このコンピューターで Teams アプリを初めてデバッグする場合は、SSL 証明書をインストールするように求められます。 [ インストール ] を選択し、2 番目のプロンプトに 対して [はい ] を選択します。 メッセージが表示されたら、Microsoft 365 アカウントにログインします。
[追加] を選択します。
デバッグを停止してアプリをアンインストールするには、Visual Studio Code で [デバッグの停止の実行>] を選択します。
Outlook アドイン プロジェクトを作成する
Visual Studio Code の 2 番目のインスタンスを開きます。
アクティビティ バーから [Teams Toolkit] を選択します。
[ 新しいアプリの作成] を選択します。
[ オプションの選択 ] ドロップダウン メニューで、[ Outlook アドイン>タスクウィンドウ] を選択します。
アドインを作成するフォルダーを選択します。
プロンプトが表示されたら、プロジェクトに名前 (スペースなし) を指定します。
Teams Toolkit は、基本的なファイルとスキャフォールディングを使用してプロジェクトを作成し、新しい Visual Studio Code ウィンドウで開きます。 このプロジェクトは、Teams プロジェクトに追加するファイルとマークアップのソースとして使用します。
このプロジェクトは開発しませんが、続行する前に、次の手順を実行して、Visual Studio Code からサイドロードできることを確認します。
Outlook デスクトップが閉じられていることを確認します。
Visual Studio Code を開きます。
アクティビティ バーから [Teams Toolkit] を選択します。
[ ACCOUNTS ] セクションで、Microsoft 365 にサインインしていることを確認します。
[Visual Studio Code で実行の表示]を選択します>。
[ 実行とデバッグ ] ドロップダウン メニューで、[ Outlook Desktop (Edge Chromium)] を選択し、F5 キーを押します。
プロジェクトがビルドされ、Webpack 開発サーバー ウィンドウが開きます。 このプロセスには数分かかる場合があり、Outlook デスクトップ ウィンドウが開きます。
Outlook に移動します。
Microsoft 365 アカウント ID の 受信トレイ を開きます。
メッセージを開きます。
2 つのボタンがある Contoso アドイン タブが [ホーム ] リボンに表示されます (または、 独自のウィンドウ でメッセージを開いた場合は [メッセージ] リボン)。
[ タスクウィンドウの表示 ] ボタンを選択します。 作業ウィンドウが開きます。
[アクションの実行] ボタンを選択します。 メッセージの上部近くに小さな通知が表示されます。
デバッグを停止し、アドインをアンインストールするには、Visual Studio Code で [デバッグの停止の実行>] を選択します。 Webpack 開発サーバー ウィンドウが閉じられない場合は、プロジェクトのルートで Visual Studio Code TERMINAL を 開き、 を実行
npm stop
します。
マニフェストをマージする
Teams アプリのマニフェストは、Teams プロジェクトの \appPackage フォルダー内のファイルからmanifest.json
デバッグとサイドロード時 (またはビルド時) に生成されます。 このファイルはマニフェストの テンプレート です。 この記事では、 テンプレート または マニフェスト テンプレートと呼ばれます。 ほとんどのマークアップはテンプレートにハードコーディングされますが、最終的に生成されたマニフェストに追加されるデータを含む構成ファイルもあります。 この手順では、次のタスクを実行します。
- アドインのマニフェストから Teams アプリのマニフェスト テンプレートにマークアップをコピーします。
- 構成ファイルを編集します。
特に指定しない限り、変更するファイルは です \appPackage\manifest.json
。
アドインのマニフェストから、"$schema" プロパティと "manifestVersion" プロパティ値を Teams アプリのマニフェスト テンプレート ファイルの対応するプロパティにコピーします。
必要に応じて、"name.full"、"description.short"、および "description.full" プロパティの値を変更して、Outlook アドインがアプリの一部であるという事実を反映します。
"name.short" 値にも同じ操作を行います。
は、名前の末尾に保持
${{TEAMSFX_ENV}}
することをお勧めします。 この変数は、localhost でデバッグする場合は "local" という文字列に置き換えられ、リモート ドメインまたは運用モードからデバッグする場合は "dev" に置き換えられます。注:
これまで、Office アドインの開発者向けドキュメントでは、"dev" または "dev mode" という用語を使用して、localhost でのアドインの実行を参照しています。 "prod" または "運用モード" という用語を使用して、ステージングまたは運用のためにリモート ホストでアドインを実行することを参照します。 Teams 開発者向けドキュメントでは、"local" という用語を使用して localhost でのアドインの実行を参照し、"dev" という用語はリモート デバッグ用のリモート ホストでのアドインの実行を指します。これは通常は "ステージング" と呼ばれます。用語の整合性を確保することに取り組んでいます。
次の JSON は例です。
"short": "Contoso Tab and Add-in-${{TEAMSFX_ENV}}",
注:
"name.short" の値は、Teams タブ機能と Outlook アドインの両方に表示されます。 いくつかの例を示します。
- これは、[Teams] タブの起動ボタンの下にあるラベルです。
- これは、アドインの作業ウィンドウのタイトル バーの内容です。
"name.short" の値を既定値 (プロジェクトの名前と変数) から変更した場合、プロジェクト
${{TEAMSFX_ENV}}
のルートにある次の 2 つのファイルにプロジェクト名が表示されるすべての場所でまったく同じ変更を行います:teamsapp.ymlとteamsapp.local.yml。Teams マニフェスト テンプレートに "authorization.permissions.resourceSpecific" 配列がない場合は、アドイン マニフェストから最上位のプロパティとしてコピーします。 Teams テンプレートにオブジェクトが既にある場合は、アドイン マニフェストの配列から Teams テンプレートの配列にオブジェクトをコピーします。 次の JSON は例です。
"authorization": { "permissions": { "resourceSpecific": [ { "name": "MailboxItem.Read.User", "type": "Delegated" } ] } },
ファイルで
env/.env.local
、 変数とTAB_ENDPOINT
変数に値を割り当てる行をTAB_DOMAIN
見つけます。 そのすぐ下に次の行を追加します。ADDIN_DOMAIN=localhost:3000 ADDIN_ENDPOINT=https://localhost:3000
ファイルで
env/.env.dev
、..の下に次の行をTAB_ENDPOINT=
追加します。線:ADDIN_ENDPOINT=
Teams マニフェスト テンプレートで、プレースホルダー
"${{ADDIN_DOMAIN}}",
を配列の上部に"validDomains"
追加します。 ローカルで開発する場合、Teams Toolkit はこれを localhost ドメインに置き換えます。 「 アプリケーションを Azure に移動する」の説明に従って、完成した複合アプリをステージングまたは運用環境にデプロイすると、Teams Toolkit によってプレースホルダーがステージング/運用 URI に置き換えられます。 次の JSON は例です。"validDomains": [ "${{ADDIN_DOMAIN}}", // other domains or placeholders ],
アドインのマニフェストの "拡張機能" プロパティ全体を、最上位のプロパティとして Teams アプリ マニフェスト テンプレートにコピーします。
Outlook アドイン ファイルを Teams アプリ プロジェクトにコピーする
Teams アプリ プロジェクト でアドイン と呼ばれる最上位のフォルダーを作成します。
次のファイルとフォルダーをアドイン プロジェクトから Teams アプリ プロジェクトの アドイン フォルダーにコピーします。
- /appPackage
- /赤外線
- /src
- .eslintrc.json
- babel.config.json
- package-lock.json
- package.json
- tsconfig.json
- webpack.config.js
コピーが完了したら、/add-in/appPackage フォルダー内のファイルを削除
manifest.json
します。フォルダー構造は、次の例のようになります。
|-- .vscode/ |-- add-in/ |-- |-- appPackage/assets/ |-- |-- infra/ |-- |-- src/ |-- |-- .eslintrc.json |-- |-- babel.config.json |-- |-- package-lock.json |-- |-- package.json |-- |-- tsconfig.json |-- |-- webpack.config.js |-- appPackage/ |-- build\appPackage/ |-- env/ |-- infra/ |-- node_modules/ |-- tab/ |-- |-- infra/ |-- |-- node_modules/ |-- |-- src/ |-- |-- .webappignore |-- |-- package-lock.json |-- |-- package.json |-- |-- tsconfig.json |-- |-- web.config |-- .gitignore |-- .localConfigs |-- package.json |-- teamsapp.local.yml |-- teamsapp.yml
ツール構成ファイルを編集する
プロジェクトの
package.json
ルートでファイルを開きます。"scripts" オブジェクトに次のスクリプトを追加します。
"install:add-in": "cd add-in && npm install", "postinstall": "npm run install:add-in && npm run install:tab", "build:add-in": "cd add-in && npm run build", "build:add-in:dev": "cd add-in && npm run build:dev", "build": "npm run build:tab && npm run build:add-in",
package.json
アドイン フォルダー内のファイルを開きます (タブ フォルダーやプロジェクトのルートではありません)。オブジェクト内の 3 つのスクリプト
scripts
には、manifest.json
次の例のように パラメーターがあります。"start": "office-addin-debugging start appPackage/manifest.json", "stop": "office-addin-debugging stop appPackage/manifest.json", "validate": "office-addin-manifest validate appPackage/manifest.json",
スクリプトで、
start
を に変更appPackage/manifest.json
します../appPackage/build/appPackage.local.zip
。 完了したら、行は次のようになります。"start": "office-addin-debugging start ../appPackage/build/appPackage.local.zip",
validate
スクリプトとstop
スクリプトで、 パラメーターを に../appPackage/build/manifest.local.json
変更します。 完了したら、更新プログラムは次のようになります。"stop": "office-addin-debugging stop ../appPackage/build/manifest.local.json", "validate": "office-addin-manifest validate ../appPackage/build/manifest.local.json",
Visual Studio Code で、 TERMINAL を開きます。
アドイン フォルダーに移動し、 コマンドを実行します
npm install
。アドイン フォルダー で 、ファイルを
webpack.config.js
開きます。行を に
from: "../appPackage/build/manifest*.json",
変更しますfrom: "appPackage/manifest*.json",
。プロジェクトのルートでファイルを
teamsapp.local.yml
開き、セクションをprovision
見つけます。 マニフェスト テンプレートを#
検証する行をコメントアウトするには、 文字を使用します。 これは、Teams マニフェスト検証システムがマニフェスト テンプレートに加えた変更とまだ互換性がないために必要です。 完了すると、行は次のコードのようになります。# - uses: teamsApp/validateManifest # with: # # Path to manifest template # manifestPath: ./appPackage/manifest.json
セクションのみを
teamsApp/validateManifest
コメントアウトしてください。 セクションをコメントアウトteamsManifest/validateAppPackage
しないでください。ファイルに対して前の手順を繰り返します
teamsapp.yml
。 3 つの行は、 セクションと セクションの両方provision
にありますpublish
。 両方の場所でコメントアウトします。.vscode\tasks.json
アドイン プロジェクトでファイルを開き、配列内のすべてのタスクをtasks
コピーします。 それらをtasks
Teams プロジェクト内の同じファイルの配列に追加します。 既に存在するタスクは削除しないでください。 すべてのタスクがコンマで区切っていることを確認します。コピーしたタスク オブジェクトごとに、次
options
のプロパティを追加して、これらのタスクが アドイン フォルダーで実行されるようにします。"options": { "cwd": "${workspaceFolder}/add-in/" }
たとえば、完了したら、
Debug: Outlook Desktop
タスクは次の JSON のように表示される必要があります。{ "label": "Debug: Outlook Desktop", "type": "npm", "script": "start", "dependsOn": [ "Check OS", "Install" ], "presentation": { "clear": true, "panel": "dedicated", }, problemMatcher": [], "options": { "cwd": "${workspaceFolder}/add-in/" } }
プロジェクトのファイル内の tasks 配列に次のタスクを
.vscode\tasks.json
追加します。 特に、このタスクは最終的なマニフェストを作成します。{ // Create the debug resources. // See https://aka.ms/teamsfx-tasks/provision to know the details and how to customize the args. "label": "Create resources", "type": "teamsfx", "command": "provision", "args": { "template": "${workspaceFolder}/teamsapp.local.yml", "env": "local" } },
tasks 配列に次のタスクを追加します。 タブ アプリの
Start Add-in Locally
タスクとアドインのCreate resources
デバッグ タスクを組み合わせ、その順序で実行する必要があることを指定するタスクが追加されることに注意してください。{ "label": "Start Add-in Locally", "dependsOn": [ "Create resources", "Debug: Outlook Desktop" ], "dependsOrder": "sequence" },
tasks 配列に次のタスクを追加します。 タスク
Start Add-in Locally
を とStart Teams App Locally
組み合わせ、その順序で実行する必要があることを指定します。{ "label": "Start App and Add-in Locally", "dependsOn": [ "Start Teams App Locally", "Start Add-in Locally" ], "dependsOrder": "sequence" },
プロジェクトでファイルを
.vscode\launch.json
開き、Visual Studio Code で RUN AND DEBUG UI を構成し、次の 2 つのオブジェクトを "構成" 配列の先頭に追加します。{ "name": "Launch Add-in Outlook Desktop (Edge Chromium)", "type": "msedge", "request": "attach", "port": 9229, "timeout": 600000, "webRoot": "${workspaceRoot}", "preLaunchTask": "Start Add-in Locally", "postDebugTask": "Stop Debug" }, { "name": "Launch App and Add-in Outlook Desktop (Edge Chromium)", "type": "msedge", "request": "attach", "port": 9229, "timeout": 600000, "webRoot": "${workspaceRoot}", "preLaunchTask": "Start App and Add-in Locally", "postDebugTask": "Stop Debug" },
compounds
同じファイルのセクションで、複合の名前をDebug in Teams (Edge)
にLaunch App Debug (Edge)
変更し、複合の名前を にLaunch App Debug (Chrome)
変更しますDebug in Teams (Chrome)
。次の手順で、Teams アプリのアドイン機能を Outlook にサイドロードできることを確認します。
Outlook デスクトップが閉じられていることを確認します。
Visual Studio Code を開きます。
アクティビティ バーから [Teams Toolkit] を選択します。
[ ACCOUNTS ] セクションで、Microsoft 365 にサインインしていることを確認します。
[Visual Studio Code で実行の表示]を選択します>。
[ 実行とデバッグ ] ドロップダウン メニューで、[ アドインの起動] Outlook Desktop (Edge Chromium) を選択し、F5 キーを押します。 プロジェクトがビルドされ、Webpack 開発サーバー ウィンドウが開きます。 このプロセスには数分かかる場合があり、Outlook デスクトップ ウィンドウが開きます。
Outlook に移動します。
Microsoft 365 アカウント ID の 受信トレイ を開きます。
メッセージを開きます。
2 つのボタンがある Contoso アドイン タブが [ホーム ] リボンに表示されます (または、 独自のウィンドウ でメッセージを開いた場合は [メッセージ] リボン)。
[ タスクウィンドウの表示 ] ボタンを選択します。 作業ウィンドウが開きます。
[アクションの実行] ボタンを選択します。 メッセージの上部近くに小さな通知が表示されます。
デバッグを停止し、アドインをアンインストールするには、Visual Studio Code で [デバッグの停止の実行>] を選択します。 Webpack 開発サーバー ウィンドウが閉じられない場合は、プロジェクトのルートで Visual Studio Code TERMINAL を 開き、 を実行
npm stop
します。
アプリとアドインを同時にローカルで実行する
アプリとアドインを同時にサイドロードして実行できますが、両方の実行時にデバッガーを確実にアタッチすることはできません。 そのため、デバッグするには、一度に 1 つだけを実行します。
アプリをデバッグするには、「 Teams アプリ プロジェクトの準備 」セクションの最後の手順を参照してください。
アドインをデバッグするには、「 ツール構成ファイルの編集 」セクションの最後の手順を参照してください。
アプリとアドインの両方が同時に実行されているのを確認するには、次の手順を実行します。
Outlook デスクトップが閉じられていることを確認します。
Visual Studio Code を開きます。
アクティビティ バーから [Teams Toolkit] を選択します。
[ ACCOUNTS ] セクションで、Microsoft 365 にサインインしていることを確認します。
[Visual Studio Code で実行の表示]を選択します>。
[ 実行とデバッグ ] ドロップダウン メニューで、[ アプリの起動とアドインの Outlook Desktop (Edge Chromium)] を選択し、F5 キーを押します。 プロジェクトがビルドされ、Webpack 開発サーバー ウィンドウが開きます。 タブ アプリは、Visual Studio Code ターミナルでホストされます。 このプロセスには数分かかる場合があり、次のアクションが発生します。
- Teams がブラウザーで開き、タブ アプリを追加するように求められます。 Outlook デスクトップが開くまでに Teams が開かれない場合、自動サイドローディングは失敗しています。 手動でサイドロードして、アプリとアドインの両方が同時に実行されているのを確認できます。 サイドローディング手順については、「 Teams でアプリをアップロードする」を参照してください。 アップロードする manifest.zip ファイルは にあります
C:\Users\{yourname}\AppData\Local\Temp
。 - Outlook デスクトップが開きます。
- Teams がブラウザーで開き、タブ アプリを追加するように求められます。 Outlook デスクトップが開くまでに Teams が開かれない場合、自動サイドローディングは失敗しています。 手動でサイドロードして、アプリとアドインの両方が同時に実行されているのを確認できます。 サイドローディング手順については、「 Teams でアプリをアップロードする」を参照してください。 アップロードする manifest.zip ファイルは にあります
Teams プロンプトで [ 追加 ] を選択し、タブが開きます。
Outlook に移動します。
Outlook で、Microsoft 365 アカウント ID の 受信トレイ を開きます。
メッセージを開きます。
2 つのボタンがある Contoso アドイン タブが [ホーム ] リボンに表示されます (または、 独自のウィンドウ でメッセージを開いた場合は [メッセージ] リボン)。
[ タスクウィンドウの表示 ] ボタンを選択します。 作業ウィンドウが開きます。
[アクションの実行] ボタンを選択します。 メッセージの上部近くに小さな通知が表示されます。
デバッグを停止し、アドインをアンインストールするには、Visual Studio Code で [デバッグの停止の実行>] を選択します。 Webpack 開発サーバー ウィンドウが閉じられない場合は、プロジェクトのルートで Visual Studio Code TERMINAL を 開き、 を実行
npm stop
します。Teams タブ アプリを手動でサイドロードする必要がある場合は、「アプリの削除」の指示に従って Teams から 削除します。
アプリケーションを Azure に移動する
プロジェクトの
teamsapp.yml
ルートでファイルを開き、 行deploymentName: Create-resources-for-tab
を見つけます。 これをdeploymentName: Create-resources-for-tab-and-addin
に変更します。同じファイルで、セクションの末尾に次のコードを
provision:
追加します。注:
インデントは YAML では意味があるため
- uses
- name
、ステートメントには 2 つのスペースをインデントし、ステートメントを にuses
揃え、with
のwith
子をさらに 2 つのスペースにインデントする必要があります。provision: -- other YAML omitted -- - uses: azureStorage/enableStaticWebsite with: storageResourceId: ${{ADDIN_AZURE_STORAGE_RESOURCE_ID}} indexPage: index.html errorPage: error.html
同じファイルで、セクション全体
deploy:
を次のコードに置き換えます。 これらの変更は、新しいフォルダー構造と、アドイン ファイルとタブ ファイルの両方を展開する必要があるという事実を考慮します。deploy: - name: InstallAllCapabilities uses: cli/runNpmCommand # Run npm command with: args: install - name: BuildAllCapabilities uses: cli/runNpmCommand # Run npm command with: args: run build --if-present - name: DeployTab uses: azureAppService/zipDeploy with: artifactFolder: tab ignoreFile: ./tab/.webappignore # The ID of the cloud resource where the tab app will be deployed. # This key will be generated by arm/deploy action automatically. resourceId: ${{TAB_AZURE_APP_SERVICE_RESOURCE_ID}} - name: DeployAddin uses: azureStorage/deploy with: workingDirectory: . # Deploy base folder artifactFolder: add-in/dist # The ID of the cloud resource where the add-in will be deployed. resourceId: ${{ADDIN_AZURE_STORAGE_RESOURCE_ID}}
プロジェクトの
infra/azure.parameters.json
ルートでファイルを開き、その内容を次の JSON に置き換えます。{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "resourceBaseName": { "value": "tabandaddin${{RESOURCE_SUFFIX}}" }, "webAppSku": { "value": "F1" }, "storageSku": { "value": "Standard_LRS" } } }
プロジェクトの
infra/azure.bicep
ルート (タブサブフォルダーまたはアドイン サブフォルダー内のファイルではなく) でファイルを開き、その内容を次のコードに置き換えます。// Params for Teams tab resources @maxLength(20) @minLength(4) @description('Used to generate names for all resources in this file') param resourceBaseName string param webAppSku string param serverfarmsName string = resourceBaseName param webAppName string = resourceBaseName param location string = resourceGroup().location param storageSku string param storageName string = resourceBaseName module tabModule '../tab/infra/azure.bicep' = { name: 'tabModule' params: { resourceBaseName: resourceBaseName webAppSku: webAppSku serverfarmsName: serverfarmsName webAppName: webAppName location: location } } module addinModule '../add-in/infra/azure.bicep' = { name: 'addinModule' params: { resourceBaseName: resourceBaseName storageSku: storageSku storageName: storageName location: location } } // The output will be persisted in .env.{envName}. Visit https://aka.ms/teamsfx-actions/arm-deploy for more details. output TAB_AZURE_APP_SERVICE_RESOURCE_ID string = tabModule.outputs.TAB_AZURE_APP_SERVICE_RESOURCE_ID // used in deploy stage output TAB_DOMAIN string = tabModule.outputs.TAB_DOMAIN output TAB_ENDPOINT string = tabModule.outputs.TAB_ENDPOINT output ADDIN_AZURE_STORAGE_RESOURCE_ID string = addinModule.outputs.ADDIN_AZURE_STORAGE_RESOURCE_ID // used in deploy stage output ADDIN_DOMAIN string = addinModule.outputs.ADDIN_DOMAIN output ADDIN_ENDPOINT string = addinModule.outputs.ADDIN_ENDPOINT
Visual Studio Code で、Teams Toolkit を開きます。
[ ACCOUNTS ] セクションで、(Microsoft 365 アカウントにサインインするだけでなく) Azure アカウントにサインインしていることを確認します。 サインインの詳細については、「 演習 - Teams タブ アプリをホストする Azure リソースを作成する」を 開き、[ Teams Toolkit で Azure にサインインする ] セクションまでスクロールします。
Teams Toolkit の [ライフサイクル ] セクションで、[ プロビジョニング] を選択します。 数分かかる場合があります。 Azure リソース グループの 1 つを選択するように求められる場合があります。
プロビジョニングが完了したら、[ デプロイ ] を選択してアプリ コードを Azure にデプロイします。
リモート展開からタブ機能を実行する
- Visual Studio Code で、[実行の表示] を選択します>。
- ドロップダウン メニューで、[ Teams でリモートを起動する (Edge)] または [ Teams でリモートを起動する (Chrome)] を選択します。
- F5 キーを押して Teams タブ機能をプレビューします。
リモート展開からアドイン機能を実行する
イン
env/.env.dev
ファイルからADDIN_ENDPOINT
運用 URL をコピーします。ファイルを編集
\add-in\webpack.config.js
し、定数値をコピーした値に変更urlProd
します。 URL の末尾に '/' を必ず追加してください。Visual Studio Code TERMINAL で、プロジェクトのルートに移動し、 を実行
npm run build:add-in
します。ファイル
\add-in\dist\manifest.dev.json
をフォルダーに\appPackage
コピーします。フォルダー内のコピーの名前を
\appPackage
にmanifest.addinPreview.json
変更します。ターミナルで を実行
npx office-addin-dev-settings sideload .\appPackage\manifest.addinPreview.json
します。 このプロセスには数分かかる場合があり、Outlook デスクトップが開きます。 (インストールoffice-addin-dev-settings
するように求められた場合は、 はいに応答します)。Outlook に移動します。
Microsoft 365 アカウント ID の 受信トレイ を開きます。
メッセージを開きます。
2 つのボタンがある Contoso アドイン タブが [ホーム ] リボンに表示されます (または、 独自のウィンドウ でメッセージを開いた場合は [メッセージ] リボン)。
[ タスクウィンドウの表示 ] ボタンを選択します。 作業ウィンドウが開きます。
[アクションの実行] ボタンを選択します。 メッセージの上部近くに小さな通知が表示されます。
次の内容
一般的に推奨されるその他の次の手順があります。たとえば、次に示します。
- 認証を追加し、Graph API 呼び出しを行います。 タブ機能については、「 Teams アプリにシングル サインオンを追加する」を参照してください。 アドイン機能については、「Office アドインで シングル サインオン (SSO) を有効にする」を参照してください。
- CI/CD パイプラインを設定します。
- バックエンド API を呼び出します。
関連項目
Platform Docs
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示