2.6K Views
June 03, 23
スライド概要
Naoya Okada
SharePoint のコンテンツ作成を 自動化してええ感じにサボろう!!! 第 1 回 Japan M365 Dev User Group 勉強会 2020年8月19日 岡田 尚也
自己紹介 名前 岡田 尚也 Twitter @nanoka7o8 どんな人? 元SIerの営業でしたが、現在は SharePoint を中心に Microsoft 365 関連のアプリを使っ た業務改善のお手伝いをお仕事にしています。 SharePoint や Power Platform に触れ、業種やスキルを問わず、誰もが自身でIT活用し ていけることに魅力を感じ、どうせ仕事するならその世界の実現を支援できる仕事に全 振りしたいなと思って、とりあえず会社辞めちゃった人です。
SharePoint のコンテンツ作成やってる? まだまだ、予算の付きにくい業務への活用でやってるやってる 簡易アプリ 本格的なアプリ 画面や 処理 Azure Web Apps 等 データ Azure SQL Database 等 • • いわゆるMicrosoft 365 ライセンスがあれば利用可能 Azure Portal操作不要 • • Microsoft 365 ライセンス以外が必要 Azure Portalの操作が必要な場合も
どうやって作ってる? (作らされてる?) 1. 突っぱねてユーザ自身に作らせる 2. GUIでポチポチ作業代行して作ってあげる 3. PowerShell でコンテンツを作ってあげる 4. Power Automate でコンテンツ作ってあげる 5. JavaScript でコンテンツ作ってあげる
具体的なやり方は? SharePoint サイトにブラウザでアクセスし、開発者ツール(F12で開くもの)を表示 コンソールに 任意のJavaScript を張り付けて実行するだけでOK
実行する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
実行する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 });
デモ 本日はブラウザのコンソールをそのまま使用するのでは 味気ないので、SPFxでコンソールアプリを作ってみました
まとめ 1. JavaScript と SharePoint REST API でいろんなことができる 2. コンソールで使えば(2013 で Script Editor 使ってた人は特に)慣れ親しんだ JavaScript で 処理を実行できる 3. 作業や処理単位でコードをまとめて、自分好みの範囲で自動化しちゃおう 注意 •利用するエンドポイントによりますが、効果を及ぼすサイトの編集以上の権限があればだい たい実行可能です •Graph REST API の実行は別途リソースへのアクセス認可を取得する必要があります
ご清聴ありがとうございました!!! サボろう!と言いましたが、わたし自身はこんなことこれくらいの時間でできちゃう よ!と承認欲求満たすことを優先し、アピールしてしまったがゆえに、作業時間短縮が ばれてうまくサボることができませんでしたので、皆様におきましてはご注意ください。