Microsoft Graph を使ってみよう : チームワークリソース (Teams)

More than 1 year has passed since last update.


Microsoft Teams

Microsoft Teams は比較的新しいサービスで、社内外のコラボレーションを効率よく行うためのツールです。Teams ではグループという単位で作業を行うようにデザインされていて、チャットやファイル、他サービスとの統合機能などが提供されます。

Microsoft Graph では Teams 用に以下のようなリソースが提供されます。


  • グループ

  • チーム

  • チャネル

  • チャット

関連リソースとして予定表やドライブ、予定やメモ (OneNote) があります。

現時点でチームワークのリソースはベータ版です。よってここでは C# のサンプルは載せませんが、HttpClient が利用できます。

また現在は行える操作が限定的ですが、詳細的にはより多くの操作がサポートされる予定です。


グループリソース

Microsoft Team の基本の単位としてグループがあります。


主なシナリオ


  • グループの取得、更新、削除

  • グループの一覧取得や差分取得

  • グループ設定の取得、作成、更新、削除

  • グループの所有者やメンバーの追加や削除

  • メンバー設定の操作

  • 関連リソースの操作


グループリソースの操作

Microsoft Teams のグループと以前紹介したグループは内部的には同じものですが、Office 365 グループとして登録が必要な点と、チームの追加が必要となります。いくつか代表的な操作を以下に紹介します。

グループの作成

Teams のグループを作成するには、まずグループリソースを作成して、その後 Teams の設定を登録します。

POST: https://graph.microsoft.com/beta/groups


Body

{

"description": "de:code 2018 Teams グループ",
"displayName": "de:code 2018 Teams グループ",
"groupTypes": [
"Unified"
],
"mailEnabled": true,
"mailNickname": "decode2018teamsgroup",
"securityEnabled": false,
"visibility": "public"
}

PUT: https://graph.microsoft.com/beta/groups/{id}/team


Body

{  

"memberSettings": {
"allowCreateUpdateChannels": true
},
"messagingSettings": {
"allowUserEditMessages": true,
"allowUserDeleteMessages": true
},
"funSettings": {
"allowGiphy": true,
"giphyContentRating": "strict"
},
"guestSettings": {
"allowCreateUpdateChannels": false,
"allowDeleteChannels": false
},
}

Capture.PNG

グループの取得と削除

GET: https://graph.microsoft.com/beta/groups/{id}

DELETE: https://graph.microsoft.com/beta/groups/{id}

グループに所有者やメンバーを追加する

追加できるのはユーザーかグループ。

POST: https://graph.microsoft.com/beta/groups/{id}/owners/$ref

POST: https://graph.microsoft.com/beta/groups/{id}/members/$ref


Body

{

"@odata.id": "https://graph.microsoft.com/beta/directoryObjects/{id}"
}

グループの削除と完全削除

グループを削除するとディレクトリの削除済アイテムに移動されるため、そこから削除すると完全な削除となります。

DELETE: https://graph.microsoft.com/beta/groups/{id}

DELETE: https://graph.microsoft.com/beta/directory/deleteditems/{id}

削除されたチームの取得と復元

完全に削除していない場合は以下のとおり取得と復元が出来ます。

GET: https://graph.microsoft.com/beta/directory/deleteditems/microsoft.graph.group

POST https://graph.microsoft.com/beta/directory/deleteditems/{id}/restore


チームリソース

グループに対して Microsoft Teams の設定を行うためのリソースです。削除はグループの削除で行います。


主なシナリオ


  • チームの作成、更新、取得


チームリソースの操作

いくつか代表的な操作を以下に紹介します。

チームの取得

GET: https://graph.microsoft.com/beta/groups/{id}/team

チームの更新

PATCH: https://graph.microsoft.com/beta/groups/{id}/team


Body

{  

"memberSettings": {
"allowCreateUpdateChannels": true
},
"messagingSettings": {
"allowUserEditMessages": true,
"allowUserDeleteMessages": true
},
"funSettings": {
"allowGiphy": true,
"giphyContentRating": "strict"
}
}


写真リソース

グループのプロファイル写真です。


主なシナリオ


  • 写真の取得と更新


写真リソースの操作

いくつか代表的な操作を以下に紹介します。

写真の取得

GET: https://graph.microsoft.com/beta/groups/{id}/photo/$value

写真の更新

PUT: https://graph.microsoft.com/beta/groups/{id}/photo/$value


Header

Content-Type: image/jpeg



Body

写真のバイナリデータ



チャネルリソース

グループ内のチャネルを表すリソースです。現在更新、削除はできません。


主なシナリオ


  • チャネルの取得、作成


チャネルリソースの操作

いくつか代表的な操作を以下に紹介します。

チャネルの作成

POST: https://graph.microsoft.com/beta/groups/{id}/team/channels


Body

{

"displayName": "セッションについて",
"description": "このチャネルではセッションについて話します。"
}

Capture.PNG


チャットスレッドリソース

チャネルでのチャットスレッドを表すリソースです。現在更新、削除はできません。


主なシナリオ


  • チャットスレッドの作成


チャットスレッドリソースの操作

チャットスレッドの作成

contentType は 0 がテキスト、1 が HTML となります。

POST: https://graph.microsoft.com/beta/groups/{id}/team/channels/{channel_id}/chatthreads


Body

{

"rootMessage": {
"body": {
"contentType": 1,
"content": "<h1>セッションについて話しましょう!</h1>"
}
}
}

Capture.PNG


チャットメッセージリソース

チャットスレッド内のメッセージです。現時点ではチャットスレッド作成時にメッセージを投稿することしかできず、他の投稿の読み取りや編集はできません。


まとめ

Teams は SharePoint の機能や Skype for Business の機能など包括的に持つ、社内コラボレーションの協力なツールです。Teams 自体も拡張機能をもっていますが、Microsoft Graph は Teams を使う側になれるので、また違った観点での拡張ができると考えています。

目次に戻る


参照

Microsoft Graph でのチームワーク操作

Automate team lifecycles with Microsoft Teams and Graph (英語)