SharePointのコンテンツ作成を自動化してええ感じにサボろう

1.8K Views

June 03, 23

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

SharePoint のコンテンツ作成を 自動化してええ感じにサボろう!!! 第 1 回 Japan M365 Dev User Group 勉強会 2020年8月19日 岡田 尚也

2.

自己紹介 名前 岡田 尚也 Twitter @nanoka7o8 どんな人? 元SIerの営業でしたが、現在は SharePoint を中心に Microsoft 365 関連のアプリを使っ た業務改善のお手伝いをお仕事にしています。 SharePoint や Power Platform に触れ、業種やスキルを問わず、誰もが自身でIT活用し ていけることに魅力を感じ、どうせ仕事するならその世界の実現を支援できる仕事に全 振りしたいなと思って、とりあえず会社辞めちゃった人です。

3.

SharePoint のコンテンツ作成やってる? まだまだ、予算の付きにくい業務への活用でやってるやってる 簡易アプリ 本格的なアプリ 画面や 処理 Azure Web Apps 等 データ Azure SQL Database 等 • • いわゆるMicrosoft 365 ライセンスがあれば利用可能 Azure Portal操作不要 • • Microsoft 365 ライセンス以外が必要 Azure Portalの操作が必要な場合も

4.

どうやって作ってる? (作らされてる?) 1. 突っぱねてユーザ自身に作らせる 2. GUIでポチポチ作業代行して作ってあげる 3. PowerShell でコンテンツを作ってあげる 4. Power Automate でコンテンツ作ってあげる 5. JavaScript でコンテンツ作ってあげる

5.

具体的なやり方は? SharePoint サイトにブラウザでアクセスし、開発者ツール(F12で開くもの)を表示 コンソールに 任意のJavaScript を張り付けて実行するだけでOK

6.

実行するJavaScriptって?(1/2) SharePoint REST API を 同期処理にして指定の順番で実行することで リスト作成→列作成→アイテム作成など手作業のまとまりをそのままコード化できる //①エンドポイントの設定 リクエストダイジェストの取得 let restUri = ‘/sites/SpfxTest /_api/contextinfo’ //②リクエストヘッダの設定 let headers = {}; headers['Content-type'] = 'application/json; odata=verbose' headers['Accept'] = 'application/json; odata=verbose' let fetchHeader = {}; fetchHeader['method'] = 'POST' fetchHeader['headers'] = headers

7.

実行するJavaScriptって?(2/2) //③同期状態でfetch関数の実行 let d = await fetch(restUri, fetchHeader) .catch((e) => { throw Error(e) }) .then((response) => response.json()) .then((responseJson) => { const { d } = responseJson return d });

8.

デモ 本日はブラウザのコンソールをそのまま使用するのでは 味気ないので、SPFxでコンソールアプリを作ってみました

9.

まとめ 1. JavaScript と SharePoint REST API でいろんなことができる 2. コンソールで使えば(2013 で Script Editor 使ってた人は特に)慣れ親しんだ JavaScript で 処理を実行できる 3. 作業や処理単位でコードをまとめて、自分好みの範囲で自動化しちゃおう 注意 •利用するエンドポイントによりますが、効果を及ぼすサイトの編集以上の権限があればだい たい実行可能です •Graph REST API の実行は別途リソースへのアクセス認可を取得する必要があります

10.

ご清聴ありがとうございました!!! サボろう!と言いましたが、わたし自身はこんなことこれくらいの時間でできちゃう よ!と承認欲求満たすことを優先し、アピールしてしまったがゆえに、作業時間短縮が ばれてうまくサボることができませんでしたので、皆様におきましてはご注意ください。