SharePoint Online の API 経由で SharePoint グループの説明(Description)を正しく取得することができない
SharePoint Online(SharePoint 2013)で遭遇したちょっとしたバグ(あるいは仕様)について。API経由で SharePointグループの説明を取得あるいは更新しようとすると、なんだかオカシナことになります。
折角の Office 365 Advent Calendar なのにこんなネタでいいの?と思いつつ、でもよく考えたら前回も大した内容じゃなかったですね(苦笑)自身の備忘録も兼ねて。
SharePoint グループの「説明」、利用してます?
SharePoint グループには、作成時に「説明(Description)」を設定することができます。サイト作成時に固有のグループを作成した場合には、デフォルトグループにはあらかじめ説明が入っています。
説明はなくてもいいのですが、SharePointグループ一覧に表示されるので、書いておいた方が後で何かと捗ります。特にテストで作成するグループは、必ず「後で削除してOK」ということを書きましょう。
API 経由で SharePoint グループの説明を取得する
さて、SharePoint はブラウザ上からだけでなく、API 経由で外からほぼ何でもできてしまうのが優れた点のひとつです。 SharePoint 2013 からは REST にも対応し、より(判っている方には)容易になりました。
例えば、以下のような記述で、説明文を抜くことが出来ます。もちろん、太字の部分は環境に合わせて適宜変更が必要です。
https://owlseye22.sharepoint.com/sites/yamanaka/prtest/_api/web/sitegroups(20)/description
これをブラウザのURL欄に入れて実行すると、SharePoint から XML 構文で SharePointグループの説明が返ってきます。
説明文が実際と違う
ただ実はこの結果、どうにもおかしい。上の画像では、いわゆる固有 SharePoint グループの初期値が表示されているのですが、実際にはこのグループの説明文は(すこしだけですが)編集されています。つまり、実際に画面に表示されている(設定されている)内容と、API 経由で取得される内容が違うことに。
ためしに、固有グループでなく、新らしく作成した SharePoint グループを取得してみると…
何も帰ってこない(ブランク)よっ!?
これはバグですねぇ
ちなみに CSOM で説明を SET してみたところ、変更に成功。変更後の内容もは CSOM で取得できました。しかし、ブラウザで確認してみると、実際の「説明」には反映されず…。おそらく、API が Description ではないどこか別のスキーマを参照/編集してしまっているのではないかと思います。
ちなみに、オンプレミス版の SharePoint Server 2013 ではまだ確認していないので、もしかしたら SharePoint Online 限定かもしれません。
このエントリは Office 365 Advent Calendar 2014 としてお送りしました
昨日のエントリ:第10回 Office365勉強会 のごあんない
明日のエントリ:Office 365 を家族で使おう。親戚に展開できるかな?
Office 365 Advent Calendar 2014