スケジューリングを拡張する
この記事では、Microsoft Teams と Microsoft Graph で仮想予定をスケジュールするために使用できるオプションについて説明します。 まず、Microsoft Teams 仮想予定で既存のエクスペリエンスをレプリケートする方法について説明します。 次に、コンシューマーに同じ仮想予定エクスペリエンスを提供しながら、独自のスケジューリング システムを使用する方法について説明します。
[前提条件]
この記事の読者は、以下のことを理解している必要があります。
- Microsoft Teams 仮想予定製品と提供されるユーザー エクスペリエンス
- Microsoft Graph API 経由で Microsoft Booking を管理するための Microsoft Graph Booking API
- Microsoft Graph API 経由で Microsoft Teams 会議を管理するための Microsoft Graph オンライン会議 API
Microsoft 365 スケジューリング システム
Microsoft Teams 仮想予定では、Microsoft Booking API を使用してそれらを管理します。 Teams アプリケーションでは、予約スタッフ メンバーの予約予定が表示され、顧客がコンサルティングに適切な時間を選択できるように [予約] ページが表示されます。 次の手順に従って、スケジューリング用の独自のユーザー インターフェイスをビルドするか、Microsoft 365 スケジューリング システムをソリューションに統合します。
- 次の HTTP 要求を使用して、使用可能な予約ビジネスを一覧表示し、Microsoft Graph 予約ビジネス API を使用して仮想予定のビジネスを選択します。
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses
Permissions: Bookings.Read.All (delegated)
Response: response.body.value[0].displayName; // ”Contoso lunch delivery”
response.body.value[0].id; // "Contosolunchdelivery@contoso.onmicrosoft.com"
- Microsoft Graph 予約サービス API を使用して、利用可能な予約サービスを一覧表示し、仮想予定のサービスを選択します。
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/ Contosolunchdelivery@contoso.onmicrosoft.com/services
Permissions: Bookings.Read.All (delegated)
Response: response.body.value[0].displayName; // ” Initial service”
response.body.value[0].id; // " f9b9121f-aed7-4c8c-bb3a-a1796a0b0b2d"
- [省略可能] Microsoft Graph 予約スタッフ メンバー API を使用して、利用可能な予約スタッフ メンバーを一覧表示し、仮想予定のスタッフ メンバーを選択します。 スタッフ メンバーが選択されていない場合、作成された予定には "Unassigned" というラベルが付きます。
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/ Contosolunchdelivery@contoso.onmicrosoft.com/staffMembers
Permissions: Bookings.Read.All (delegated)
Response: response.body.value[0].displayName; // ”Dana Swope”
response.body.value[0].id; // "8ee1c803-a1fa-406d-8259-7ab53233f148"
- [省略可能] Microsoft Graph 予約顧客 API を使用して、仮想予定の予約顧客を選択または作成します。 顧客がいない場合、アラームは送信されません。
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/ Contosolunchdelivery@contoso.onmicrosoft.com/customers
Permissions: Bookings.Read.All (delegated)
Response: response.body.value[0].displayName; // ”Adele Vance”
response.body.value[0].id; // "80b5ddda-1e3b-4c9d-abe2-d606cc075e2e"
- Microsoft Graph 予約予定 API を使用して、選択したビジネス、サービス、必要に応じてスタッフ メンバーとゲストの予約予定を作成します。 次の例では、予約に関連付けられたオンライン会議を作成します。 さらに、メモやアラームを指定することもできます。
POST https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/ Contosolunchdelivery@contoso.onmicrosoft.com/appointments
Body: {
"endDateTime": {
"@odata.type": "#microsoft.graph.dateTimeTimeZone",
"dateTime": "2023-05-20T10:00:00.0000000+00:00",
"timeZone": "UTC"
},
"isLocationOnline": true,
"staffMemberIds": [
{
"8ee1c803-a1fa-406d-8259-7ab53233f148"
}
],
"serviceId": "f9b9121f-aed7-4c8c-bb3a-a1796a0b0b2d",
"startDateTime": {
"dateTime": "2023-05-20T09:00:00.0000000+00:00",
"timeZone": "UTC"
},
"customers": [
{
"customerId": "80b5ddda-1e3b-4c9d-abe2-d606cc075e2e"
}
]
}
Permissions: BookingsAppointment.ReadWrite.All (delegated)
Response: response.body.value.id; // "AAMkADc7zF4J0AAA8v_KnAAA="
response.body.value.serviceId; // "f9b9121f-aed7-4c8c-bb3a-a1796a0b0b2d"
response.body.value.joinWebUrl; // "https://teams.microsoft.com/l/meetup-join/..."
response.body.value.anonymousJoinWebUrl; // "https://visit.teams.microsoft.com/webrtc-svc/..."
response.body.value.staffMemberIds; // "8ee1c803-a1fa-406d-8259-7ab53233f148"
response.body.value.customers[0].name; // "Adele Vance"
応答では、新しい予約予定が作成されたことがわかります。 仮想予定は、Microsoft Booking アプリと Microsoft Teams 仮想予定アプリケーションにも表示されます。
Note
顧客情報を取得する唯一の方法は、GET Microsoft Graph 予約予定 API を使用することです。
独自のスケジューリング システムを使用する
既存のスケジューリング システムがある場合に、Microsoft Teams によって提供される仮想予定エクスペリエンスで拡張するには、次の手順に従います。
- Microsoft Graph オンライン会議 API を使用して、仮想予定のオンライン会議を作成します。
Note
この操作では、Microsoft Booking、Outlook、または Microsoft Teams で予定表イベントは作成されません。 予定表イベントを作成する場合は、Microsoft Graph 予定表イベント API を使用します。
POST https://graph.microsoft.com/v1.0/ me/onlineMeetings
Body: {
"startDateTime":"2023-05-20T09:00:00.0000000+00:00",
"endDateTime":"2023-05-20T10:00:00.0000000+00:00",
"subject":"Virtual appointment in Microsoft Teams"
}
Permissions: OnlineMeetings.ReadWrite (delegated)
Response: response.body.value.id; // "MSpkYzE3NjctYmZiMi04ZdFpHRTNaR1F6WGhyZWFkLnYy"
response.body.value.joinWebUrl; // "https://teams.microsoft.com/l/meetup-join/..."
- 次を使用して、前の手順で作成した onlinemeeting リソースの仮想予定エクスペリエンスを作成します
GET https://graph.microsoft.com/v1.0/ me/onlineMeetings/ MSpkYzE3NjctYmZiMi04ZdFpHRTNaR1F6WGhyZWFkLnYy/getVirtualAppointmentJoinWebUrl
Permissions: OnlineMeetings.ReadWrite (delegated)
Response: response.body.value; //"https://visit.teams.microsoft.com/webrtc-svc/..."
生成された URL をスケジューリング システム内に保存することも、スケジューリング システム内の予定表イベントの一意の ID と Microsoft Teams 仮想予定エクスペリエンスの URL をリンクする、専用のキーと値のペア ストレージを作成することもできます。
次のステップ
- 仮想予定に対する拡張オプションを学習する。
- 予定の前後をカスタマイズする方法を学習する
- 事前通話エクスペリエンスをカスタマイズする方法を学習する
- 通話エクスペリエンスをカスタマイズする方法を学習する