背景
- Private Team が、チームコード参加から、承認形式にしたくなった。
で、Power Automate で、アクセス要求をイベントに処理しようとした際の調査記録
とはいえ、今回は、非統合の場合のお話
前提
- Sharepoint 統合されると、Sharepoint側では管理せず、Teams 側管理となるので、内部の非公開APIによる処理になっていて、手が出せそうにないです。
統合されていない場合の、アクセス要求について
Lists で管理されている
ということで、以下で取得可能。ただし過去記録はなく、現時点の未処理要求のみ
{team site url}/_api/web/lists/getbytitle('アクセス依頼')/items
でもって、Lists なので、上記で ID を取れれば、Power Automate のアクションでもいけそう
List そのものを取得した場合、以下のようなListの説明が確認できる
<d:Description>このリストは、サイトへのアクセス依頼、またはサイト内で固有の権限があるアイテムを追跡するために使います。</d:Description>
items については、以下のような感じ
<content type="application/xml">
<m:properties>
<d:FileSystemObjectType m:type="Edm.Int32">0</d:FileSystemObjectType>
<d:Id m:type="Edm.Int32">1</d:Id>
<d:ServerRedirectedEmbedUri m:null="true" />
<d:ServerRedirectedEmbedUrl></d:ServerRedirectedEmbedUrl>
<d:ContentTypeId>0x0038FC8738DEF88E41A0AB6F4087FFF93A</d:ContentTypeId>
<d:OData__ColorTag m:null="true" />
<d:ComplianceAssetId m:null="true" />
<d:ApprovedByStringId m:null="true" />
<d:PermissionLevelRequested m:type="Edm.Double">1073741830</d:PermissionLevelRequested>
<d:Conversation>アクセスを希望します。</d:Conversation>
<d:RequestDate>2023-10-18T01:09:29Z</d:RequestDate>
<d:PropagateAcl m:type="Edm.Boolean">false</d:PropagateAcl>
<d:ID m:type="Edm.Int32">1</d:ID>
<d:Modified m:type="Edm.DateTime">2023-10-18T01:09:29Z</d:Modified>
<d:Created m:type="Edm.DateTime">2023-10-18T01:09:29Z</d:Created>
<d:AuthorId m:type="Edm.Int32">1073741823</d:AuthorId>
<d:EditorId m:type="Edm.Int32">1073741823</d:EditorId>
<d:OData__UIVersionString>1.0</d:OData__UIVersionString>
<d:Attachments m:type="Edm.Boolean">false</d:Attachments>
<d:GUID m:type="Edm.Guid">d47ca1ff-5bdd-4fa5-bde2-4238c71edfe6</d:GUID>
</m:properties>
</content>
</entry>
Lists なので、これを使ってトリガー仕込んで処理すれば、と思ったが・・
所有者なのに権限不足みたいなエラーが出た・・。
OData で処理すればいけるのかもしれないけれど、職場な上、試せる環境ではなかったので、パス
統合されてるかの確認方法
Sharepoint のサイトコンテンツ、もしくはサイト設定にいって見られるかどうか?
とはいっても、要求が無いと見えない・・。
あとがき
統合されている場合については、非公開APIでやってそうなので、正直メールトリガーでしか現状方法が思いつかない・・。
アクセス要求自体出せ無くしておいて、別途Formsなり、承認アプリなりで受け付けるか・・