Microsoft Teams のユーザーにアクティビティ フィード通知を送信する
Microsoft Teams アクティビティ フィードを使用すると、ユーザーは変更を通知することで、注意が必要なアイテムをトリアージできます。 Microsoft Graph のアクティビティ フィード通知 API を使用して、この機能をアプリに拡張できます。 これにより、アプリは、より豊富なエクスペリエンスを提供し、ユーザーが使用するツールやワークフローの変更を最新の状態に保つことができます。
アクティビティ フィード通知の基本を理解する
Microsoft Teams のアクティビティ フィード通知は、次の図に示すように、複数のビットの情報で構成され、まとめて表示されます。
コンポーネントには次のものが含まれます。
- アクティビティを開始したアクター
- アクティビティの種類を表すアイコン
- 出演者が活動を行った理由
- テキストのプレビュー
- タイムスタンプ
- アクティビティの場所
次の例は、これらのコンポーネントが一緒に通知に関する詳細を提供する方法を示しています。 この例は、Yammer コミュニティで言及されているユーザーに関する通知です。
アクティビティ フィード通知 API を使用するための要件
アクティビティ フィード API は Teams アプリと連携します。 アクティビティ フィード通知を送信するための要件を次に示します。
- Teams アプリ マニフェストには、セクションに Azure AD アプリ ID が追加されている
webApplicationInfo
必要があります。 詳細については、「 マニフェスト スキーマ」を参照してください。 - アクティビティの種類は、セクションで宣言する
activities
必要があります。 詳細については、「 マニフェスト スキーマ」を参照してください。 - Teams アプリは、受信者に対して、個人的にインストールするか、 チーム または チャット にインストールする必要があります。 詳細については、「 Teams アプリのインストール」を参照してください。
Teams アプリ マニフェストの変更
このセクションでは、Teams アプリ マニフェストに追加する必要がある変更について説明します。 Teams アプリ マニフェストのバージョン1.7
以上を使用している必要があることに注意してください。
"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.7/MicrosoftTeams.schema.json",
"manifestVersion": "1.7",
webApplicationInfo セクションの変更
"webApplicationInfo":
{
"id": "a3111f15-658e-457c-9689-fd20fe907330",
"resource": "https://contosoapp.com"
}
パラメーター | 型 | 説明 |
---|---|---|
id | string | Azure AD アプリ ID (クライアント ID)。 |
resource | string | Azure AD アプリに関連付けられているリソース。 Azure Portal の応答 URL またはリダイレクト URL とも呼ばれます。 |
注意
同じスコープ内の複数の Teams アプリ (チーム、チャット、またはユーザー) が同じ Azure AD アプリを使用している場合、エラーが発生する可能性があります。 一意の Azure AD アプリを使用していることを確認します。
activities セクションの変更
"activities":
{
"activityTypes": [
{
"type": "taskCreated",
"description": "Task Created Activity",
"templateText": "{actor} created task {taskId} for you"
},
{
"type": "approvalRequired",
"description": "Deployment requires your approval",
"templateText": "{actor} created a new deployment {deploymentId}"
}
]
}
パラメーター | 型 | 説明 |
---|---|---|
type | string | 動作状況の種類。 これは、特定のマニフェストで一意である必要があります。 |
説明 | string | 人間が判読できる簡単な説明。 これは、Microsoft Teams クライアントに表示されます。 |
templateText | string | アクティビティ通知のテンプレート テキスト。 パラメーターをカプセル化することで、パラメーター {} を宣言できます。 |
注意
actor
は、常に呼び出し元の名前を受け取る特殊なパラメーターです。 委任された呼び出しでは、 actor
ユーザーの名前です。 アプリケーションのみの呼び出しでは、Teams アプリの名前を受け取ります。
Teams アプリをインストールする
Teams アプリは、チーム、チャット、またはユーザーに対して個人的にインストールでき、複数の方法で配布できます。 詳細については、「 Teams アプリの配布方法」を参照してください。 通常、開発目的では サイドローディング が推奨されます。 開発後、1 つのテナントまたはすべてのテナントに配布するかどうかに基づいて、適切な配布方法を選択できます。
Teams アプリインストール API を使用して、Teams アプリのインストールを管理することもできます。
アクティビティ フィード通知をユーザーに送信する
Teams アプリはユーザー、チーム、またはチャットにインストールできるため、次の 3 つのコンテキストでも通知を送信できます。
さらに、通知は一度に最大 100 人のユーザーに一括で送信できます。
各シナリオでサポートされているトピックの詳細については、特定の API を参照してください。 カスタム テキスト ベースのトピックは、すべてのシナリオでサポートされています。
注意
アクティビティ アイコンは、要求が行われたコンテキストに基づいています。 委任されたアクセス許可で要求が行われた場合、ユーザーの写真がアバターとして表示され、Teams アプリ アイコンがアクティビティ アイコンとして表示されます。 アプリケーションのみのコンテキストでは、Teams アプリ アイコンがアバターとして使用され、アクティビティ アイコンは省略されます。
例 1: チャットで作成されたタスクについてユーザーに通知する
この例では、チャットで作成された新しいタスクのアクティビティ フィード通知を送信する方法を示します。 この場合、Teams アプリは ID chatId
を持つチャットにインストールする必要があり、ユーザー 569363e2-4e49-4661-87f2-16f245c5d66a
もチャットの一部である必要があります。
要求
POST https://graph.microsoft.com/beta/chats/{chatId}/sendActivityNotification
Content-Type: application/json
{
"topic": {
"source": "entityUrl",
"value": "https://graph.microsoft.com/beta/chats/{chatId}"
},
"activityType": "taskCreated",
"previewText": {
"content": "New Task Created"
},
"recipient": {
"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
"userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
},
"templateParameters": [
{
"name": "taskId",
"value": "12322"
}
]
}
応答
HTTP/1.1 204 No Content
例 2: チームで作成されたタスクについてユーザーに通知する
この例では、チームのアクティビティ フィード通知を送信する方法を示します。 この例では、チームの所有者に、注意が必要な新しいタスクが作成されたことを通知します。
要求
POST https://graph.microsoft.com/beta/teams/{teamId}/sendActivityNotification
Content-Type: application/json
{
"topic": {
"source": "entityUrl",
"value": "https://graph.microsoft.com/beta/teams/{teamId}"
},
"activityType": "taskCreated",
"previewText": {
"content": "New Task Created"
},
"recipient": {
"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
"userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
},
"templateParameters": [
{
"name": "taskId",
"value": "12322"
}
]
}
応答
HTTP/1.1 204 No Content
例 3: カスタム トピックを使用してイベントについてユーザーに通知する
前の例に示したように、チームやチャットのさまざまな側面にリンクできます。 ただし、チームの一部ではない、または Microsoft Graph によって表されていない側面にリンクする場合、または名前をカスタマイズする場合は、To のtopic``text
ソースを設定し、カスタム値を渡すことができます。 また、webUrl
ソースtext
を topic
.
前に示した Yammer 通知の例では、Yammer のリソースが Microsoft Graph でサポートされていないため、カスタム トピックを使用しています。
注意
webUrl
は、Microsoft Teams ドメイン (たとえば teams.microsoft.com) で始める必要があります。
要求
POST https://graph.microsoft.com/beta/teams/{teamId}/sendActivityNotification
Content-Type: application/json
{
"topic": {
"source": "text",
"value": "Deployment Approvals Channel",
"webUrl": "https://teams.microsoft.com/l/message/19:448cfd2ac2a7490a9084a9ed14cttr78c@thread.skype/1605223780000?tenantId=c8b1bf45-3834-4ecf-971a-b4c755ee677d&groupId=d4c2a937-f097-435a-bc91-5c1683ca7245&parentMessageId=1605223771864&teamName=Approvals&channelName=Azure%20DevOps&createdTime=1605223780000"
},
"activityType": "approvalRequired",
"previewText": {
"content": "New deployment requires your approval"
},
"recipient": {
"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
"userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
},
"templateParameters": [
{
"name": "deploymentId",
"value": "6788662"
}
]
}
応答
HTTP/1.1 204 No Content
例 4: イベントについてチーム メンバーに通知する
この例では、アクティビティ フィード通知をすべてのチーム メンバーに送信する方法を示します。 次の使用例は、新しいイベントについてチーム メンバーに通知します。
注意
すべてのチーム メンバーに通知を送信する機能は、現在ベータ版でのみ使用できます。
要求
POST https://graph.microsoft.com/beta/teams/7155e3c8-175e-4311-97ef-572edc3aa3db/sendActivityNotification
Content-Type: application/json
{
"topic": {
"source": "text",
"value": "Weekly Virtual Social",
"webUrl": "Teams webUrl"
},
"previewText": {
"content": "It will be fun!"
},
"activityType": "eventCreated",
"recipient": {
"@odata.type": "microsoft.graph.teamMembersNotificationRecipient",
"teamId": "7155e3c8-175e-4311-97ef-572edc3aa3db"
}
}
応答
HTTP/1.1 204 No Content
例 5: チャネル メンバーにイベントについて通知する
この例では、アクティビティ フィード通知をすべてのチャネル メンバーに送信する方法を示します。 この例では、チャネル メンバーに新しいイベントについて通知します。
注意
現在、すべてのチャネル メンバーに通知を送信する機能はベータ版でのみ使用できます。
要求
POST https://graph.microsoft.com/beta/teams/7155e3c8-175e-4311-97ef-572edc3aa3db/sendActivityNotification
Content-Type: application/json
{
"topic": {
"source": "text",
"value": "Weekly Virtual Social",
"webUrl": "Teams webUrl"
},
"previewText": {
"content": "It will be fun!"
},
"activityType": "eventCreated",
"recipient": {
"@odata.type": "microsoft.graph.channelMembersNotificationRecipient",
"teamId": "7155e3c8-175e-4311-97ef-572edc3aa3db",
"channelId": "19:0ea5de04de4743bcb4cd20cb99235d99@thread.tacv2"
}
}
応答
HTTP/1.1 204 No Content
例 6: イベントについてチャット メンバーに通知する
この例では、アクティビティ フィード通知をすべてのチャット メンバーに送信する方法を示します。 この例では、新しいイベントについてチャット メンバーに通知します。
注意
すべてのチャット メンバーに通知を送信する機能は、現在ベータ版でのみ使用できます。
要求
POST https://graph.microsoft.com/beta/chats/19:d65713bc498c4a428c71ef9353e6ce20@thread.v2/sendActivityNotification
Content-Type: application/json
{
"topic": {
"source": "text",
"value": "Weekly Virtual Social",
"webUrl": "Teams webUrl"
},
"previewText": {
"content": "It will be fun!"
},
"activityType": "eventCreated",
"recipient": {
"@odata.type": "microsoft.graph.chatMembersNotificationRecipient",
"chatId": "19:d65713bc498c4a428c71ef9353e6ce20@thread.v2"
}
}
応答
HTTP/1.1 204 No Content
例 7: 保留中の財務承認要求について複数のユーザーに通知する
次の例は、アクティビティ フィード通知を複数のユーザーに一括送信する方法を示しています。 この例では、保留中の財務承認要求について複数の利害関係者に通知します。
注意
複数のユーザーに一括で通知を送信する機能は、現在ベータ版でのみ使用できます。
要求
POST https://graph.microsoft.com/beta/teamwork/sendActivityNotificationToRecipients
Content-Type: application/json
{
"topic": {
"source": "entityUrl",
"value": "https://graph.microsoft.com/beta/appCatalogs/teamsApps/{teamsAppId}"
},
"activityType": "pendingFinanceApprovalRequests",
"previewText": {
"content": "Internal spending team has a pending finance approval requests"
},
"recipients": [
{
"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
"userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
},
{
"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
"userId": "ab88234e-0874-477c-9638-d144296ed04f"
},
{
"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
"userId": "01c64f53-69aa-42c7-9b7f-9f75195d6bfc"
}
],
"templateParameters": [
{
"name": "pendingRequestCount",
"value": "5"
}
]
}
応答
HTTP/1.1 202 Accepted
通知のアラート方法をカスタマイズする
Microsoft Teams ユーザーは、フィードに表示される通知やバナーなどの通知をカスタマイズできます。 アクティビティ フィード API を使用して生成された通知をカスタマイズすることもできます。 ユーザーは、Microsoft Teams の設定を使用して通知方法を選択できます。 次のスクリーンショットに示すように、ユーザーが選択する Teams アプリが一覧に表示されます。
ユーザーは、次の例に示すように、アプリの横にある [編集] をクリックして通知をカスタマイズできます。 description
Teams アプリ マニフェストのフィールドが表示されます。
よく寄せられる質問
Teams アプリをインストールする必要があるユーザー
ターゲット ユーザーには、通知を送信する Teams アプリがインストールされている必要があります。
ユーザーは自分に通知を送信できますか?
いいえ。ユーザーは自分自身に通知を送信できません。 このシナリオでは、アプリケーションのアクセス許可を使用します。
Teams アプリは、通知をユーザーに表示する方法を制御できますか?
いいえ。通知設定を変更できるのはユーザーのみです。
アプリをインストールしました。ユーザー アカウントの下に通知設定が表示されないのはなぜですか?
設定は、Teams アプリから最初の通知が送信された後に表示されます。 これにより、ユーザーに表示される設定の数が減ります。
409 (競合) エラーが発生し始めました。どのように解決すればよいですか?
Conflict
エラーは、主に、同じスコープにインストールされている複数の Teams アプリ (チーム、チャット、ユーザーなど) がマニフェストのセクションで同じ Azure AD appId を webApplicationInfo
持っている場合に発生します。 これが発生すると、次のような Found multiple applications with the same Azure AD App ID 'Your AzureAD AppId'.
エラーが発生します。 一意の Teams アプリに一意の Azure AD アプリを使用していることを確認します。 同じ Teams アプリを複数のスコープ (チームとユーザーなど) にインストールできることに注意してください。
関連項目
フィードバック
フィードバックの送信と表示