Power Automate で Graph API を利用してTeam Template からチーム作成をするときに少し悩んだ点を書き残しておくメモです。
今回はユーザーとしてではなく、アプリケーションとしてチーム作成するケースを念頭に置きます。
Azure AD のアプリケーションに付与する権限は以下のとおりです。
Azure AD へのアプリケーション登録~権限付与までの流れは以下のブログ記事がとても分かりやすかったです。
Microsoft Power Automate × Graph API で EMS 運用自動化のススメ(準備編) | by Kenta Osuka | kosuka EMS | Medium
躓いたポイント
アプリケーションからだけでなく委任されたユーザーでも同様ですが、Team Templateを利用してチームを作成するときのtemplate bindです。
Docsに従ってBodyを作ってみようと思ったのですが、"teamsTemplates('xxxx')"
の部分がどう設定していいのかわからず。
Create team - Microsoft Graph beta | Microsoft Docs
POST https://graph.microsoft.com/beta/teams Content-Type: application/json { "template@odata.bind": "https://graph.microsoft.com/beta/teamsTemplates('standard')", "displayName": "My Sample Team", "description": "My Sample Team’s Description" }
以下のDocsを見ると、どうも baseTemplateId という情報を設定すればよさそうです。
Microsoft Graph を使用して Teams テンプレートを使ってみる - Microsoft Teams | Microsoft Docs
しかし、読み進めていくと以下のような表がありました。
素直に表に従って、以下のようなbodyを送信しましたが、BadRequest (template@odata.bind
のフォーマットが不正) が返ってきました。
{ "template@odata.bind": "com.microsoft.teams.template.AdoptOffice365", "displayName": "My Sample Team", "description": "My Sample Team’s Description" }
解決
表を一度忘れて、teamsTemplatesの引数にテンプレート管理画面から取得できるIDをセットしてみるとうまく動作してくれました。
{ "template@odata.bind": "https://graph.microsoft.com/beta/teamsTemplates('com.microsoft.teams.template.AdoptOffice365')", "displayName": "My Sample Team", "description": "My Sample Team’s Description" }
ということで、知っていれば何のことはないのですが、ハマったポイントでした。