Microsoft 365 グループのコネクタを作成する
重要
Microsoft 365 コネクタ (以前は Office 365 コネクタ) は非推奨に近づいています。新しい Microsoft 365 コネクタの作成は間もなくブロックされます。 スケジュールの詳細と、ワークフロー アプリがより柔軟で安全なエクスペリエンスを提供する方法については、 Microsoft Teams内の Microsoft 365 コネクタの廃止に関するページを参照してください。
Teams で Webhook を作成するにはどうすればよいですか?
Webhook 要求の受信時にチャットまたはチャネルに自動的に投稿するには、定義済みのワークフロー テンプレートを使用するか、[ Teams Webhook 要求が受信されたとき ] トリガーを使用してワークフローを最初から作成します。 詳細については、「 Microsoft Teams で Webhook 要求が受信されたときにワークフローを投稿する」を参照してください。
Teams Webhook 要求が受信されたときのトリガーの詳細については、「Microsoft Teams - Webhook」を参照してください。
Office 365 コネクタを既に構築している場合:
Power Automate コネクタを作成する: Power Automate は、Teams で広く使用されているワークフロー アプリを強化します。 これは、Teams との間でプログラムによってデータを送信するためのスケーラブルで安全なアプローチです。 この方法を採用する場合は、製品から Teams チャネルにアラートを投稿するためのワークフロー テンプレートを作成できます。 この方法により、新しい方法のユーザーの導入が簡略化されます。 詳細については、エンタープライズ開発者、ISV、パートナー向けの Power Automate に関するページを参照してください。
Teams アプリを更新する: 現在の Teams アプリを強化できます。 たとえば、ユーザーがシステム内のトリガー イベントに基づいてプロアクティブ メッセージを設定できるようにします。 詳細については、ボットがプロアクティブ メッセージを通じてチャネルに投稿する方法に関するページを参照してください。
既知の問題
- ワークフロー アプリは、プライベート チャネルでフロー ボットとして投稿できません。 ただし、ユーザーに代わって投稿することはできます。
- ワークフローでは、アダプティブ カードのみがサポートされます。 コネクタで使用される古いメッセージカード形式Office 365サポートされていません。 ワークフロー内のメッセージカード形式の使用のサポートは、10 月中旬から利用可能になります。 詳細については、コネクタ メッセージカード形式をアダプティブ カードに変換する方法に関するページを参照してください。
- ワークフローには、DataDog や Jenkins などのサードパーティ製コネクタは用意されていません。
- ワークフローは、既定の環境でのみ作成できます。
限界事項
ワークフローは、特定のユーザー (ワークフローの所有者と呼ばれます) にのみリンクされ、Teams チームまたはチャネルにはリンクされません。 共同所有者が割り当てられていない場合、ワークフローは所有者が存在しない場合に孤立フローになる可能性があります。 フローによって自動化されたビジネス プロセスの継続性を維持するために、管理者は 1 人以上の共同所有者を追加し、ワークフローを完全に制御できます。 また、接続の認証 (存在する場合) を追加し、フローが無効になっている場合はフローを有効にすることもできます。 詳細については、「 孤立フローの管理」を参照してください。
Microsoft Teamsアプリを使用すると、Microsoft 365 グループ用の既存のコネクタを追加したり、Teams 内に新しいコネクタを構築したりできます。 詳細については、「独自のコネクタを構築する」を参照してください。
Microsoft 365 グループ用のコネクタを作成する方法については、次のビデオを参照してください。
注:
このトピックでは、Microsoft Teams JavaScript クライアント ライブラリ (TeamsJS) のバージョン 2.0.x を反映しています。 以前のバージョンを使用している場合は、 最新の TeamsJS と以前のバージョンの違いに関するガイダンスについては、TeamsJS ライブラリの概要を参照してください。
Teams アプリにコネクタを追加する
パッケージを作成し、AppSource への提出の一部としてコネクタを公開できます。 登録済みのコネクタを Teams アプリ パッケージの一部として配布できます。 Teams アプリのエントリ ポイントに関する情報は、機能を参照してください。 Teams 内でアップロードするために、パッケージをユーザーに直接提供することもできます。
コネクタを配布するには、コネクタ開発者ダッシュボードにコネクタを登録します。
Teams でのみ機能するコネクタの場合は、手順に従って、 アプリを Microsoft Teams Store に発行する 記事でコネクタを送信します。 それ以外の場合、登録されたコネクタは、Outlook や Teams など、アプリケーションをサポートするすべての Microsoft 365 製品で機能します。
重要
コネクタは、コネクタ開発者ダッシュボードで [保存] を選択した後で登録されます。 AppSource でコネクタを発行する場合は、Microsoft Teams アプリを AppSource に公開するの手順に従います。 AppSource でアプリを公開しない場合は、それを組織に直接配布します。 組織のコネクタを公開した後、コネクタ ダッシュボードでそれ以上のアクションは必要ありません。
構成エクスペリエンスを統合する
ユーザーは、Teams クライアントから離れることなく、すべてのコネクタ構成エクスペリエンスを完了できます。 エクスペリエンスを得るために、Teams は iframe 内に直接構成ページを埋め込むことができます。 操作のシーケンスは以下のとおりです。
ユーザーが構成プロセスを開始するために、コネクタを選択します。
ユーザーは Web エクスペリエンスと対話し、構成を完了します。
ユーザーは、コードのコールバックをトリガーする [保存] を選択します。
注:
- このコードでは、Webhook 設定を取得して保存イベントを処理することができます。 コードには、後でイベントを投稿するための Webhook が格納されます。
- 構成エクスペリエンスは、Teams 内にインラインで読み込まれます。
既存の Web 構成エクスペリエンスを再利用することも、Teams 専用にホストされた別のバージョンを作成することもできます。 コードには TeamsJS ライブラリを含める必要があります。 これにより、ユーザー、チャネル、チーム コンテキストの取得、認証フローの開始など、一般的な操作を実行するための API へのコード アクセスが提供されます。
構成エクスペリエンスを統合するには、以下の操作を行います。
注:
TeamsJS ライブラリ v.2.0.0 以降、settings 名前空間の API は、pages.config
サブ名前空間のpages.getConfig()
やその他の API など、pages 名前空間内の同等の API を優先して非推奨になりました。 詳細については、「 TeamsJS バージョン 2.x.x の新機能」を参照してください。
app.initialize()
を呼び出して TeamsJS を初期化します。pages.config.setValidityState(true)
を呼び出して [保存] を有効にします。注:
ユーザーの選択またはフィールドの更新に対する応答として
microsoftTeams.pages.config.setValidityState(true)
を呼び出す必要があります。microsoftTeams.pages.config.registerOnSaveHandler()
イベント ハンドラーを登録します。これは、ユーザーが [保存] を選択したときに呼び出されます。microsoftTeams.pages.config.setConfig()
を呼び出し、コネクタ設定を保存します。 保存された設定は、ユーザーがコネクタの既存の構成を更新しようとした場合にも、構成ダイアログに表示されます。microsoftTeams.pages.getConfig()
を呼び出し、URL を含む Webhook プロパティを取得します。注:
再設定する場合は、ページが最初にロードされたときに
microsoftTeams.pages.getConfig()
を呼び出す必要があります。ユーザーがコネクタを削除した場合に呼び出される
microsoftTeams.pages.config.registerOnRemoveHandler()
イベント ハンドラーを登録します。
このイベントにより、サービスはクリーンアップ アクションを実行できます。
以下のコードは、カスタマー サービスやサポートなしでコネクタ設定ページを作成するためのサンプル HTML です。
<h2>Send notifications when tasks are:</h2>
<div class="col-md-8">
<section id="configSection">
<form id="configForm">
<input type="radio" name="notificationType" value="Create" onclick="onClick()"> Created
<br>
<br>
<input type="radio" name="notificationType" value="Update" onclick="onClick()"> Updated
</form>
</section>
</div>
<script src="https://res.cdn.office.net/teams-js/2.2.0/js/MicrosoftTeams.min.js" integrity="sha384-Q2Z9S56exI6Oz/ThvYaV0SUn8j4HwS8BveGPmuwLXe4CvCUEGlL80qSzHMnvGqee" crossorigin="anonymous"></script>
<script src="/Scripts/jquery-1.10.2.js"></script>
<script>
function onClick() {
pages.config.setValidityState(true);
}
await microsoftTeams.app.initialize();
pages.config.registerOnSaveHandler(function (saveEvent) {
var radios = document.getElementsByName('notificationType');
var eventType = '';
if (radios[0].checked) {
eventType = radios[0].value;
} else {
eventType = radios[1].value;
}
await pages.config.setConfig({
entityId: eventType,
contentUrl: "https://YourSite/Connector/Setup",
removeUrl:"https://YourSite/Connector/Setup",
configName: eventType
});
pages.getConfig().then(async (config) {
// We get the Webhook URL from config.webhookUrl which needs to be saved.
// This can be used later to send notification.
});
saveEvent.notifySuccess();
});
pages.config.registerOnRemoveHandler(function (removeEvent) {
alert("Removed" + JSON.stringify(removeEvent));
});
</script>
ページの読み込みの一部としてユーザーを認証するには、タブの認証フローを参照して、ページが埋め込まれたときにサインインを統合してください。
注:
TeamsJS v.2.0.0 より前のコードでは、クライアント間の互換性上の理由からauthenticate()
を呼び出す前に、URL と成功または失敗のコールバック メソッドを使用してmicrosoftTeams.authentication.registerAuthenticationHandlers()
を呼び出す必要があります。 TeamsJS v.2.0.0 以降、 registerAuthenticationHandlers は、必要な認証パラメーターを使用して authentication() を 直接呼び出すことに優先して非推奨になりました。
getConfig
件の応答のプロパティ
注:
getConfig
呼び出しによって返されるパラメーターは、タブからこのメソッドを呼び出すと異なり、リファレンスに記載されているものとは異なります。
getConfig
件の応答のプロパティのパラメーターとその詳細についてはとおりです。
パラメーター | 詳細 |
---|---|
entityId |
setConfig() を呼び出す場合にコードで設定されたエンティティ ID。 |
configName |
setConfig() を呼び出す場合にコードで設定される構成名。 |
contentUrl |
setConfig() を呼び出す場合にコードによって設定される、構成ページの URL。 |
webhookUrl |
コネクタ用に作成された Webhook URL。 WEBhook URL を使用して、構造化 JSON を POST してチャネルにカードを送信します。
webhookUrl は、アプリケーションがデータを正常に返した場合にのみ返されます。 |
appType |
返される値は、Microsoft 365 メール、Microsoft 365 グループ、または Teams に対応するmail 、groups 、またはteams できます。 それぞれ。 |
userObjectId |
コネクタのセットアップを開始した Microsoft 365 ユーザーに対応する一意の ID。 セキュリティで保護する必要があります。 この値を使用して、サービスで構成を設定した Microsoft 365 のユーザーを関連付けることができます。 |
編集の処理
コードは、既存のコネクタ構成を編集するために戻るユーザーを処理する必要があります。 これを行うには、初期構成時に以下のパラメーターを指定して microsoftTeams.pages.config.setConfig()
を呼び出します。
-
entityId
は、ユーザーがサービスによって構成および理解されたことを表すカスタム ID です。 -
configName
は、構成コードで取得できる名前です。 -
contentUrl
は、ユーザーが既存のコネクタ構成を編集したときに読み込まれるカスタム URL です。
この呼び出しは、保存イベント ハンドラーの一部として行われます。 次に、 contentUrl
が読み込まれると、コードで getConfig()
を呼び出して、構成ユーザー インターフェイス内の設定またはフォームを事前設定する必要があります。
削除の処理
ユーザーが既存のコネクタ構成を削除したときに、イベント ハンドラーを実行できます。 このハンドラーは、microsoftTeams.pages.config.registerOnRemoveHandler()
メソッドを実装することで登録します。 このハンドラーは、データベースからエントリを削除するなどのクリーンアップ操作を実行するために使用されます。
アプリ マニフェストにコネクタを含める
開発者ポータルから自動生成されたアプリ マニフェスト (以前は Teams アプリ マニフェスト) をダウンロードします。 アプリをテストまたは発行する前に、次の手順を実行します。
- アイコンを 2 つ含めます。
- アプリ マニフェスト ファイルの
icons
部分を変更して、URL ではなくアイコンのファイル名を含めます。
次 のmanifest.json 例には、アプリのテストと送信に必要な要素が含まれています。
注:
次の例の id
と connectorId
を、コネクタの GUID に置き換えます。
コネクタを使用した manifest.json の例
{
"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json",
"manifestVersion": "1.5",
"id": "e9343a03-0a5e-4c1f-95a8-263a565505a5",
"version": "1.0",
"developer": {
"name": "Publisher",
"websiteUrl": "https://www.microsoft.com",
"privacyUrl": "https://www.microsoft.com",
"termsOfUseUrl": "https://www.microsoft.com"
},
"description": {
"full": "This is a small sample app we made for you! This app has samples of all capabilities Microsoft Teams supports.",
"short": "This is a small sample app we made for you!"
},
"icons": {
"outline": "sampleapp-outline.png",
"color": "sampleapp-color.png"
},
"connectors": [
{
"connectorId": "e9343a03-0a5e-4c1f-95a8-263a565505a5",
"scopes": [
"team"
]
}
],
"name": {
"short": "Sample App",
"full": "Sample App"
},
"accentColor": "#FFFFFF",
"needsIdentity": "true"
}
コネクタをテストする
コネクタをテストするには、他のアプリと同じ方法でコネクタをチームにアップロードします。 2 つのアイコン ファイルとコネクタ開発者ダッシュボードから、アプリ マニフェスト ファイルを使用して .zip パッケージを作成できます。これは、「 アプリ マニフェストにコネクタを含める」の指示にしたがって変更されます。
アプリをアップロードしたら、任意のチャネルからコネクタ リストを開きます。 一番下までスクロールして、アプリが [アップロード済み] セクションに表示されていることを確認します。
注:
フローは、ホストされたエクスペリエンスとして Teams 内で完全に発生します。
HttpPOST
アクションが正しく動作していることを確認するために、お使いのコネクタにメッセージを送信します。
詳細なガイドに従って、Teams でコネクタを作成してテストします。
Webhook とコネクタを配布する
コード サンプル
次のテーブルに、サンプル名とその説明を示します。
サンプルの名前 | 説明 | .NET | Node.js |
---|---|---|---|
コネクタの TODO 通知 | このサンプルでは、Teams チャネルの通知を生成して送信するMicrosoft 365 グループ用のコネクタを示します。 | 表示 | 表示 |
汎用コネクタのサンプル | このサンプルでは、Webhook をサポートするすべてのシステム用にカスタマイズしやすい汎用コネクタを示します。 | 該当なし | 表示 |
ステップ バイ ステップのガイド
ステップバイステップ ガイドに従って、Teams でコネクタを構築してテストします。
関連項目
Platform Docs