とある案件で外部アプリから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としてパースしてやればいいだけ。あとはよしなに。