SharePoint の「最近使ったドキュメント」の取得


ノルウェーの Mikael Svenson さんが、ブログで面白い投稿を行っているので、少し深堀りしてみました。簡単に書くと、SharePoint Online 上の OneDrive for Business ライブラリ上に表示される「最近使ったドキュメント」 (自分自身が最近参照した Office ドキュメント) をどうやって API で取得するか、というものです。ここには、以下の URL で取得できる、と記載があり、実際に試したところ、確かにデータが取得できました。

https://<テナント名&gt;.sharepoint.com/_api/me/getrecentdocs

注意 : 私自身が探した限りでは、TechNet ライブラリや MSDN ライブラリには記載が見られなかったので、いつでも利用できるとは思わない方がいいです。サポートへ問い合わせるも難しいので、自己責任の範囲で、ちょっとした確認に留めた方がいいかもしれません。

JSON 形式か XML 形式で取得できるということなので、スクリプト エディター Web パーツを利用して SharePoint サイト上に JSON 形式で取得して表示しましょう。

  1. (必要に応じて) SharePoint サイトを作成
  2. ページの編集画面から、[挿入] – [メディアおよびコンテンツ] – [スクリプト エディター] でスクリプト エディター Web パーツを挿入
    image
  3. Web パーツの編集から、[タイトル] に「最近使ったドキュメント」、[枠の種類] に「タイトルのみ」 を選択後に Web パーツが表示された箇所に表示された [スニペットを編集] をクリックし、下記に示すコードを入力して、SharePoint ページを保存したら完了です
    image
    image

実際のコードは以下の通りです。<テナント名> は、各自のテナント名に変更してください。
JSON 形式で取得すると、IconUrl にアイコンの URL、FileName にファイル名、LinkLocation にドキュメントの URL が入っているので、そのまま利用しているだけです。JavaScript ライブラリは CDN から取得していますが、SharePoint サイト コレクション内などにアップロードして参照しても問題ないです。

<script type=”text/javascript” src=”//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js”>
</script>
<script type=”text/javascript” src=”//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js”>
</script>
<script type=”text/javascript”>
jQuery.ajax({
url: “https://<テナント名&gt;.sharepoint.com/_api/me/getrecentdocs”,
type: “GET”,
headers: {“Accept”: “application/json;odata=verbose”},
cache:false,
success: function(data){
var items = [];
var loopcount = 10;
var num = 1;
$(data.d.results).each(function(){
items.push(‘<img src=”‘ + this.IconUrl + ‘”> ‘ +
‘<a href=”‘ + this.LinkLocation + ‘”>’ + this.FileName + ‘</a></p>’);
num++;
if (num > loopcount) {return false;}
});
$(“.recentDocsInfo”).html(items.join(”))
}
});
</script>
<div class=”recentDocsInfo”></div>

戻ってくる情報さえわかれば、簡単コーディングです。戻ってくる情報は、開発ツールを利用してもいいですが、この程度なら console.log(data); で出力して、Internet Explorer の開発者モードで確認すれば OK です。楽々 LaTeX…もとい楽々 SharePoint!!

image

広告