はじめに
チームの所有者はチームメンバーが投稿したメッセージを削除することができます。設定が少し分かりにくかったのでまとめてみました。
必要な設定
チーム所有者がメンバーの投稿を削除するためには、以下の両方の設定で許可されていることが必要です。
- チームの設定
- メッセージングポリシー
1 は既定で許可されていますが、2 は既定のメッセージポリシーでは許可されていないためポリシーの変更が必要です。
(参考:Teams でメッセージング ポリシーを管理する)
https://learn.microsoft.com/ja-jp/microsoftteams/messaging-policies-in-teams
1. チームの設定
Teams の設定は Teams クライアント、または Teams 管理センターから変更することできます。
Teams クライアントから
- チームの [設定] をクリックします
- [メンバー アクセス許可] から [所有者はすべてのメッセージを削除できます] に✅を入れます
Teams 管理センターから
2. メッセージング ポリシー
メッセージング ポリシーの変更とユーザーへの割り当ては Teams 管理センターから行います。
2.1 メッセージング ポリシーの変更または作成
- [メッセージング ポリシー] をクリックします
- グローバル ポリシーの編集、または [+ 追加] ボタンから新規にポリシーを作成します
- [所有者が送信したメッセージを削除できます] を [オン] にします
新規にポリシーを作成した場合は、以下の手順で作成したポリシーをチームの所有者に割り当てます。
動作確認
上記の設定で許可されていると、チーム所有者はチームメンバーが投稿したメッセージを削除することができます。
Graph API からのメッセージ削除
メッセージの削除は Grap API からも行うことができます。以下は Graph PowerShell でメッセージを削除するコマンドの例です。
# 削除したいメッセージのチーム/チャネル/メッセージIDを指定してください。
$TeamId = "56ed970b-b97e-4f68-bfb7-47cacfbbd268"
$ChannelId = "19:VGOdFgqAaIezb0gehBTIjniXlPeqPL30jod1tnb0xDk1@thread.tacv2"
$MessgeId = "1755329512489"
# チーム所有者のユーザでサインインしてください
Connect-MgGraph -Scopes "ChannelMessage.ReadWrite"
Invoke-MgGraphRequest -Method POST -Uri "/v1.0/teams/$TeamId/channels/$ChannelId/messages/$MessgeId/softDelete"
"ChannelMessage.ReadWrite" は"管理者の同意"が必要なアクセス許可です。そのため実行には管理者ユーザーの許可が必要です。
※ 関連記事:Graph API の管理者の同意について
(参考:chatMessage: softDelete)
https://learn.microsoft.com/ja-jp/graph/api/chatmessage-softdelete?view=graph-rest-1.0&tabs=http