Sharepoint Online で特定サイトのグループ一覧とそのグループ所属ユーザ一覧を「REST API」を使って取得する方法

とある案件で外部アプリからSharepoint Onlineで作られたチームサイト(もしくはサブサイト)のユーザ一覧をREST APIを使って取得する必要があった(JavascriptのAjax通信で取得したかった)のでその方法をご紹介する。

前提として、Office365 にログインが出来て、Sharepoint OnlineでSharepointサイトを作っていることとする。
(Sharepointサイトのやり方とかは公式やらヘルプやらみてくれ)
なお、外部アプリの登録はしなくてもとりあえずはテストできるので、とりあえずはSharepointサイトだけあればいい。

Office365 にログインが完了している状態で、ブラウザのアドレス欄に以下のURLを入力してみてほしい。

Atom形式のXMLが取得できるはずだ。

Sharepointサイトに登録されているユーザの一覧を REST API で取得する

https://<your site url>/_api/Web/SiteUsers

Sharepointサイトに登録されているグループの一覧を REST API で取得する

https://<your site url>/_api/Web/SiteGroups

Sharepointサイトのとあるグループに所属しているユーザの一覧を REST API で取得する

https://<your site url>/_api/Web/SiteGroups/GetById(9)/Users

※「GetById(9)」の9という数字はSiteGroupsで取得できる「<d:Id m:type="Edm.Int32"></d:Id>」の値を使う。
※つまりこのID値を変えれば違うグループのユーザを取得できる。

後は、言うまでも無いがjQueryなどのAjaxメソッドを使ってこのURLにアクセスして、帰ってきた文字列をXMLとしてパースしてやればいいだけ。あとはよしなに。