次の方法で共有


Teams アプリに Outlook アドインを追加する

ヒント

この記事は、新しく作成された Teams アプリと Outlook アドインから始めることで、Teams アプリと Office アドインを組み合わせて作成する方法を理解するのに役立ちます。 既に使用されている既存の Teams アプリとアドインなど、Teams アプリと Office アドインをマージする一般的なプロセスの概要については、「 Outlook アドインと Teams アプリを組み合わせるための一般的なガイダンス」を参照してください。

概要

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 アドインを追加するには:

  1. Teams アプリ プロジェクトを準備します
  2. 最初は Teams アプリ プロジェクトとは別の Office アドイン プロジェクトを作成します。
  3. Outlook アドイン プロジェクトから Microsoft 365 の統合マニフェストにマニフェストをマージします。
  4. Outlook アドイン ファイルを Teams アプリ プロジェクトにコピーします
  5. ツール構成ファイルを編集します
  6. アプリとアドインを同時にローカルで実行する
  7. アプリケーションを 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 を実行すると、後の手順で作成されます。 ビルド フォルダーは、プロジェクトでビルド スクリプトを実行するまで存在しません。

タブまたはボットのソース コードを分離するには、次の手順を実行します。

  1. ルートの名前付き タブ (または ボット) の下にフォルダーを作成します。

    注:

    わかりやすくするために、この記事の残りの部分では、既存の Teams アプリがタブであることを前提としています。ボットを使い始めた場合は、さまざまなファイルに追加または編集するコンテンツを含め、これらすべての手順で "tab" を "bot" に置き換えます。

  2. infra フォルダーを新しいサブフォルダーにコピーし、新しいタブ>infra フォルダーからazure.parameters.json ファイルを削除します。

  3. node_modulesフォルダーと src フォルダーを新しいサブフォルダーに移動します。

  4. .webappignorepackage-lock.jsonpackage.jsontsconfig.jsonweb.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
    
  5. タブ フォルダーに移動したpackage.jsonで、scripts オブジェクトから dev:teamsfx という名前のスクリプトを削除します。 このスクリプトは、次の手順で新しい package.json に追加されます。

  6. プロジェクトのルートに 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"
        }
    }
    
  7. 必要に応じて、 nameversionauthor の各プロパティを変更します。

  8. プロジェクトのルートで teamsapp.yml ファイルを開き、 ignoreFile: .webappignore行を見つけて、 ignoreFile: ./tab/.webappignoreに変更します。

  9. プロジェクトのルートで teamsapp.local.yml ファイルを開き、 args: install --no-audit行を見つけて、これを args: run install:tab --no-auditに変更します。

  10. Visual Studio Code で TERMINAL を 開きます。 プロジェクトのルートに移動し、 npm installを実行します。 新しい node_modules フォルダーと新しい package.lock.json ファイルがプロジェクト ルートに作成されます。

  11. 次に、 npm run install:tabを実行します。 新しい node_modules フォルダーと新しい package.lock.json ファイルがタブ フォルダーに作成されます (まだ存在しない場合)。

  12. 次の手順でタブをサイドロードできることを確認します。

    1. Teams Toolkit を開きます。

    2. [ ACCOUNTS ] セクションで、Microsoft 365 アカウントにサインインしていることを確認します。

    3. Visual Studio Code で [表示>Run] を 選択します。

    4. [ 実行とデバッグ ] ドロップダウン メニューで、[ Teams (Edge)] で [デバッグ ] を選択し、F5 キーを押します。

      プロジェクトがビルドされ、実行されます。 このプロセスには数分かかることがあります。 完了すると、Teams はブラウザーで開き、タブ アプリを追加するように求められます。

      注:

      このコンピューターで Teams アプリを初めてデバッグする場合は、SSL 証明書をインストールするように求められます。 [ インストール ] を選択し、2 番目のプロンプトに 対して [はい ] を選択します。 メッセージが表示されたら、Microsoft 365 アカウントにログインします。

    5. [追加] を選択します。

    6. デバッグを停止してアプリをアンインストールするには、[Visual Studio Code で 実行>Stop デバッグ ] を選択します。

Outlook アドイン プロジェクトを作成する

  1. Visual Studio Code の 2 番目のインスタンスを開きます。

  2. アクティビティ バーから [Teams Toolkit] を選択します。

  3. [ 新しいアプリの作成] を選択します

  4. [ オプションの選択 ] ドロップダウン メニューで、[ Outlook アドイン>Taskpane] を選択します。

  5. アドインを作成するフォルダーを選択します。

  6. プロンプトが表示されたら、プロジェクトに名前 (スペースなし) を指定します。

    Teams Toolkit は、基本的なファイルとスキャフォールディングを使用してプロジェクトを作成し、新しい Visual Studio Code ウィンドウで開きます。 このプロジェクトは、Teams プロジェクトに追加するファイルとマークアップのソースとして使用します。

  7. このプロジェクトは開発しませんが、続行する前に、次の手順を実行して、Visual Studio Code からサイドロードできることを確認します。

    1. Outlook デスクトップが閉じられていることを確認します。

    2. Visual Studio Code を開きます。

    3. アクティビティ バーから [Teams Toolkit] を選択します。

    4. [ ACCOUNTS ] セクションで、Microsoft 365 にサインインしていることを確認します。

    5. Visual Studio Code で [表示>Run] を 選択します。

    6. [実行とデバッグ] ドロップダウン メニューで、[Outlook Desktop (Edge Chromium)] を選択し、F5 キーを押します。

      プロジェクトがビルドされ、Webpack 開発サーバー ウィンドウが開きます。 このプロセスには数分かかる場合があり、Outlook デスクトップ ウィンドウが開きます。

    7. Outlook に移動します。

    8. Microsoft 365 アカウント ID の 受信トレイ を開きます。

    9. メッセージを開きます。

      2 つのボタンがある Contoso アドイン タブが [ホーム ] リボンに表示されます (または、 独自のウィンドウ でメッセージを開いた場合は [メッセージ] リボン)。

    10. [ タスクウィンドウの表示 ] ボタンを選択します。 作業ウィンドウが開きます。

    11. [アクションの実行] ボタンを選択します。 メッセージの上部近くに小さな通知が表示されます。

    12. デバッグを停止し、アドインをアンインストールするには、[Visual Studio Code で 実行>Stop デバッグ ] を選択します。 Webpack dev-server ウィンドウが閉じられない場合は、プロジェクトのルートで Visual Studio Code TERMINAL を 開き、 npm stopを実行します。

マニフェストをマージする

Teams アプリのマニフェストは、Teams プロジェクトの \appPackage フォルダー内のmanifest.json ファイルからデバッグとサイドロード時 (またはビルド時) に生成されます。 このファイルはマニフェストの テンプレート です。 この記事では、 テンプレート または マニフェスト テンプレートと呼ばれます。 ほとんどのマークアップはテンプレートにハードコーディングされますが、最終的に生成されたマニフェストに追加されるデータを含む構成ファイルもあります。 この手順では、次のタスクを実行します。

  • アドインのマニフェストから Teams アプリのマニフェスト テンプレートにマークアップをコピーします。
  • 構成ファイルを編集します。

特に指定がない限り、変更するファイルは \appPackage\manifest.json

  1. アドインのマニフェストから、"$schema" プロパティと "manifestVersion" プロパティ値を Teams アプリのマニフェスト テンプレート ファイルの対応するプロパティにコピーします。

  2. 必要に応じて、"name.full"、"description.short"、および "description.full" プロパティの値を変更して、Outlook アドインがアプリの一部であるという事実を反映します。

  3. "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] タブの起動ボタンの下にあるラベルです。
    • これは、アドインの作業ウィンドウのタイトル バーの内容です。
  4. "name.short" の値を既定値 (プロジェクトの名前に続けて ${{TEAMSFX_ENV}} 変数) から変更した場合、プロジェクトのルート内の次の 2 つのファイルにプロジェクト名が表示されるすべての場所でまったく同じ変更を行います:teamsapp.ymlとteamsapp.local.yml。

  5. Teams マニフェスト テンプレートに "authorization.permissions.resourceSpecific" 配列がない場合は、アドイン マニフェストから最上位のプロパティとしてコピーします。 Teams テンプレートにオブジェクトが既にある場合は、アドイン マニフェストの配列から Teams テンプレートの配列にオブジェクトをコピーします。 次の JSON は例です。

    "authorization": {
        "permissions": {
            "resourceSpecific": [
                {
                    "name": "MailboxItem.Read.User",
                    "type": "Delegated"
                }
            ]
        }
    },
    
  6. env/.env.local ファイルで、TAB_DOMAIN変数とTAB_ENDPOINT変数に値を割り当てる行を見つけます。 そのすぐ下に次の行を追加します。

    ADDIN_DOMAIN=localhost:3000
    ADDIN_ENDPOINT=https://localhost:3000
    
  7. env/.env.dev ファイルで、次の行を TAB_ENDPOINT= ... の下に追加します。線:

    ADDIN_ENDPOINT=
    
  8. Teams マニフェスト テンプレートで、"validDomains"配列の上部にプレースホルダー "${{ADDIN_DOMAIN}}",を追加します。 ローカルで開発する場合、Teams Toolkit はこれを localhost ドメインに置き換えます。 「 アプリケーションを Azure に移動する」の説明に従って、完成した複合アプリをステージングまたは運用環境にデプロイすると、Teams Toolkit によってプレースホルダーがステージング/運用 URI に置き換えられます。 次の JSON は例です。

    "validDomains": [
        "${{ADDIN_DOMAIN}}",
    
        // other domains or placeholders
    ],
    
  9. アドインのマニフェストの "拡張機能" プロパティ全体を、最上位のプロパティとして Teams アプリ マニフェスト テンプレートにコピーします。

Outlook アドイン ファイルを Teams アプリ プロジェクトにコピーする

  1. Teams アプリ プロジェクト でアドイン と呼ばれる最上位のフォルダーを作成します。

  2. 次のファイルとフォルダーをアドイン プロジェクトから Teams アプリ プロジェクトの アドイン フォルダーにコピーします。

    • /appPackage
    • /赤外線
    • /src
    • .eslintrc.json
    • babel.config.json
    • package-lock.json
    • package.json
    • tsconfig.json
    • webpack.config.js
  3. コピーが完了したら、/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
    

ツール構成ファイルを編集する

  1. プロジェクトのルートで package.json ファイルを開きます。

  2. "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",
    
  3. アドイン フォルダー内package.json ファイルを開きます (タブ フォルダーやプロジェクトのルートではありません)。

  4. scripts オブジェクト内の 3 つのスクリプトには、次の例のように 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",
    
  5. Visual Studio Code で、 TERMINAL を開きます。

  6. アドイン フォルダーに移動し、コマンド npm installを実行します。

  7. アドイン フォルダー webpack.config.js ファイルを開きます。

  8. 行の from: "appPackage/manifest*.json",from: "../appPackage/build/manifest*.json",に変更します。

  9. プロジェクトのルートで、 teamsapp.local.yml ファイルを開き、[ provision ] セクションを見つけます。 マニフェスト テンプレートを検証する行をコメントアウトするには、 # 文字を使用します。 これは、Teams マニフェスト検証システムがマニフェスト テンプレートに加えた変更とまだ互換性がないために必要です。 完了すると、行は次のコードのようになります。

    # - uses: teamsApp/validateManifest
    #   with:
    #     # Path to manifest template
    #     manifestPath: ./appPackage/manifest.json 
    

    [ teamsApp/validateManifest ] セクションのみをコメントアウトしてください。 [ teamsManifest/validateAppPackage ] セクションをコメントアウトしないでください。

  10. teamsapp.yml ファイルに対して前の手順を繰り返します。 3 行は、 provision セクションと publish セクションの両方にあります。 両方の場所でコメントアウトします。

  11. アドイン プロジェクトで.vscode\tasks.json ファイルを開き、tasks配列内のすべてのタスクをコピーします。 Teams プロジェクト内 tasks 同じファイルの配列に追加します。 既に存在するタスクは削除しないでください。 すべてのタスクがコンマで区切っていることを確認します。

  12. コピーした各タスク オブジェクトに、次の 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/"
        }
    }
    
  13. プロジェクトの .vscode\tasks.json ファイルの tasks 配列に次のタスクを追加します。 特に、このタスクは最終的なマニフェストを作成します。

    {
        // 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"
        }
    },
    
  14. tasks 配列に次のタスクを追加します。 タブ アプリのCreate resources タスクとアドインのデバッグ タスクを組み合わせ、その順序で実行する必要があることを指定するStart Add-in Locally タスクが追加されることに注意してください。

    {
        "label": "Start Add-in Locally",
        "dependsOn": [
            "Create resources",
            "Debug: Outlook Desktop"
        ],
        "dependsOrder": "sequence"
    },
    
  15. tasks 配列に次のタスクを追加します。 Start Teams App Locally タスクとStart Add-in Locallyが組み合わされ、その順序で実行する必要があることを指定します。

     {
         "label": "Start App and Add-in Locally",
         "dependsOn": [
             "Start Teams App Locally",
             "Start Add-in Locally"
         ],
         "dependsOrder": "sequence"
     },
    
  16. プロジェクトで .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"
    },
    
  17. 同じファイルの [ compounds ] セクションで、 Debug in Teams (Edge) のコンパウンドの名前を Launch App Debug (Edge) に変更し、 Debug in Teams (Chrome) の名前を Launch App Debug (Chrome) に変更します。

  18. 次の手順で、Teams アプリのアドイン機能を Outlook にサイドロードできることを確認します。

    1. Outlook デスクトップが閉じられていることを確認します。

    2. Visual Studio Code を開きます。

    3. アクティビティ バーから [Teams Toolkit] を選択します。

    4. [ ACCOUNTS ] セクションで、Microsoft 365 にサインインしていることを確認します。

    5. Visual Studio Code で [表示>Run] を 選択します。

    6. [実行とデバッグ] ドロップダウン メニューで、[アドインの起動] Outlook Desktop (Edge Chromium) を選択し、F5 キーを押します。 プロジェクトがビルドされ、Webpack 開発サーバー ウィンドウが開きます。 このプロセスには数分かかる場合があり、Outlook デスクトップ ウィンドウが開きます。

    7. Outlook に移動します。

    8. Microsoft 365 アカウント ID の 受信トレイ を開きます。

    9. メッセージを開きます。

      2 つのボタンがある Contoso アドイン タブが [ホーム ] リボンに表示されます (または、 独自のウィンドウ でメッセージを開いた場合は [メッセージ] リボン)。

    10. [ タスクウィンドウの表示 ] ボタンを選択します。 作業ウィンドウが開きます。

    11. [アクションの実行] ボタンを選択します。 メッセージの上部近くに小さな通知が表示されます。

    12. デバッグを停止し、アドインをアンインストールするには、[Visual Studio Code で 実行>Stop デバッグ ] を選択します。 Webpack dev-server ウィンドウが閉じられない場合は、プロジェクトのルートで Visual Studio Code TERMINAL を 開き、 npm stopを実行します。

アプリとアドインを同時にローカルで実行する

アプリとアドインを同時にサイドロードして実行できますが、両方の実行時にデバッガーを確実にアタッチすることはできません。 そのため、デバッグするには、一度に 1 つだけを実行します。

アプリをデバッグするには、「 Teams アプリ プロジェクトの準備 」セクションの最後の手順を参照してください。

アドインをデバッグするには、「 ツール構成ファイルの編集 」セクションの最後の手順を参照してください。

アプリとアドインの両方が同時に実行されているのを確認するには、次の手順を実行します。

  1. Outlook デスクトップが閉じられていることを確認します。

  2. Visual Studio Code を開きます。

  3. アクティビティ バーから [Teams Toolkit] を選択します。

  4. [ ACCOUNTS ] セクションで、Microsoft 365 にサインインしていることを確認します。

  5. Visual Studio Code で [表示>Run] を 選択します。

  6. [実行とデバッグ] ドロップダウン メニューで、[アプリの起動とアドインの Outlook Desktop (Edge Chromium)] を選択し、F5 キーを押します。 プロジェクトがビルドされ、Webpack 開発サーバー ウィンドウが開きます。 タブ アプリは、Visual Studio Code ターミナルでホストされます。 このプロセスには数分かかる場合があり、次のアクションが発生します。

    • Teams がブラウザーで開き、タブ アプリを追加するように求められます。 Outlook デスクトップが開くまでに Teams が開かれない場合、自動サイドローディングは失敗しています。 手動でサイドロードして、アプリとアドインの両方が同時に実行されているのを確認できます。 サイドローディング手順については、「 Teams でアプリをアップロードする」を参照してください。 アップロードする manifest.zip ファイルは、 C:\Users\{yourname}\AppData\Local\Tempにあります。
    • Outlook デスクトップが開きます。
  7. Teams プロンプトで [ 追加 ] を選択し、タブが開きます。

  8. Outlook に移動します。

  9. Outlook で、Microsoft 365 アカウント ID の 受信トレイ を開きます。

  10. メッセージを開きます。

    2 つのボタンがある Contoso アドイン タブが [ホーム ] リボンに表示されます (または、 独自のウィンドウ でメッセージを開いた場合は [メッセージ] リボン)。

  11. [ タスクウィンドウの表示 ] ボタンを選択します。 作業ウィンドウが開きます。

  12. [アクションの実行] ボタンを選択します。 メッセージの上部近くに小さな通知が表示されます。

  13. デバッグを停止し、アドインをアンインストールするには、[Visual Studio Code で 実行>Stop デバッグ ] を選択します。 Webpack dev-server ウィンドウが閉じられない場合は、プロジェクトのルートで Visual Studio Code TERMINAL を 開き、 npm stopを実行します。

  14. Teams タブ アプリを手動でサイドロードする必要がある場合は、「アプリの削除」の指示に従って Teams から 削除します

アプリケーションを Azure に移動する

  1. プロジェクトのルートで teamsapp.yml ファイルを開き、 deploymentName: Create-resources-for-tab行を見つけます。 これを deploymentName: Create-resources-for-tab-and-addin に変更します。

  2. 同じファイルで、次のコードを provision: セクションの末尾に追加します。

    注:

    インデントは YAML では意味があるため、 - uses ステートメントと - name ステートメントは 2 つのスペースをインデントする必要があります。 with ステートメントは usesに揃え、 with の子にはさらに 2 つのスペースをインデントする必要があります。

    provision:
    
      -- other YAML omitted --
    
      - uses: azureStorage/enableStaticWebsite
        with:
          storageResourceId: ${{ADDIN_AZURE_STORAGE_RESOURCE_ID}}
          indexPage: index.html
          errorPage: error.html
    
  3. 同じファイルで、 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}}
    
  4. プロジェクトのルートで 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"
          }
        }
    }
    
  5. プロジェクトのルート (タブまたはアドインのサブフォルダー内のファイルではなく) で 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
    
  6. Visual Studio Code で、Teams Toolkit を開きます。

  7. [ ACCOUNTS ] セクションで、(Microsoft 365 アカウントにサインインするだけでなく) Azure アカウントにサインインしていることを確認します。 サインインの詳細については、「 演習 - Teams タブ アプリをホストする Azure リソースを作成する」を 開き、[ Teams Toolkit で Azure にサインインする ] セクションまでスクロールします。

  8. Teams Toolkit の [ライフサイクル ] セクションで、[ プロビジョニング] を選択します。 数分かかる場合があります。 Azure リソース グループの 1 つを選択するように求められる場合があります。

  9. プロビジョニングが完了したら、[ デプロイ ] を選択してアプリ コードを Azure にデプロイします。

リモート展開からタブ機能を実行する

  1. Visual Studio Code で、[ 表示>Run] を選択します。
  2. ドロップダウン メニューで、[ Teams でリモートを起動する (Edge)] または [ Teams でリモートを起動する (Chrome)] を選択します。
  3. F5 キーを押して Teams タブ機能をプレビューします。

リモート展開からアドイン機能を実行する

  1. env/.env.dev ファイルのADDIN_ENDPOINTから運用 URL をコピーします。

  2. ファイル \add-in\webpack.config.js 編集し、定数値 urlProd 先ほどコピーした値に変更します。 URL の末尾に '/' を必ず追加してください。

  3. Visual Studio Code TERMINAL で、プロジェクトのルートに移動し、 npm run build:add-inを実行します。

  4. ファイル \add-in\dist\manifest.dev.json\appPackage フォルダーにコピーします。

  5. \appPackage フォルダー内のコピーの名前を manifest.addinPreview.json に変更します。

  6. ターミナルで、npx office-addin-dev-settings sideload .\appPackage\manifest.addinPreview.jsonを実行します。 このプロセスには数分かかる場合があり、Outlook デスクトップが開きます。 ( office-addin-dev-settingsをインストールするように求められた場合は、 はいを応答します)。

  7. Outlook に移動します。

  8. Microsoft 365 アカウント ID の 受信トレイ を開きます。

  9. メッセージを開きます。

    2 つのボタンがある Contoso アドイン タブが [ホーム ] リボンに表示されます (または、 独自のウィンドウ でメッセージを開いた場合は [メッセージ] リボン)。

  10. [ タスクウィンドウの表示 ] ボタンを選択します。 作業ウィンドウが開きます。

  11. [アクションの実行] ボタンを選択します。 メッセージの上部近くに小さな通知が表示されます。

次の内容

一般的に推奨されるその他の次の手順があります。たとえば、次に示します。

関連項目