More Related Content Similar to msgraph.go: Go言語で Microsoft Graph プログラミング (20) msgraph.go: Go言語で Microsoft Graph プログラミング1. 第 29 回 Office 365 勉強会
2020-04-04 Takeshi Yaegashi
2. 自己紹介
八重樫 剛史 Takeshi Yaegashi
株式会社バンダイナムコスタジオ所属
Linux・Unix・OSS・低レベルなことが好きなエンジニア
ホームページ・ブログ https://l0w.dev Qiita https://qiita.com/yaegashi
最近の登壇
Microsoft de:code 2019 「DT01: ゲームメーカー目線で Azure を (略)」
Go Conference 2019 Autumn 「Microsoft Graph API Library for Go」
Ansiblejpディベロッパー部 2020.02「 AnsibleでAzureインフラを(略) 」
Microsoft Open Tech Night #6 「Terraform Provider for Microsoft Graph」
5. Go 言語
https://golang.org/
Google 製のプログラミング言語 (2009)
C ライクでシンプルな文法、豊富なライブラリ
サーバー、インフラ、コマンドラインツール (CLI) が得意分野
Docker、Kubernetes、Terraform など、
現代のクラウドインフラの実装主力言語
マルチプラットフォーム
Windows, macOS, Linux の実行ファイルが簡単に作れる
マスコット Gopher (ホリネズミ)
6. msgraph.go
https://github.com/yaegashi/msgraph.go
Go 言語用の Microsoft Graph クライアントライブラリ
ほとんどの Microsoft Graph リソース操作に対応 (コード自動生成)
利用例
matterbridge
チャット中継ソフト Teams, Slack, Mattermost, IRC, etc. に対応
Terraform Provider for Microsoft Graph
Azure インフラ内のユーザー、グループ、アプリなどの登録削除の自動化
1000 人の Office 365 ユーザーもあっというまに作れる
7. o365events
https://github.com/yaegashi/o365events
msgraph.go で作ったコマンドラインツール (CLI)
Office 365 カレンダーからイベントと出席者一覧を Excel 形式で出力
SharePoint Online のドキュメントライブラリに直接アップロード
Windows, macOS, Linux 版の実行ファイルを提供 (リリース)
COVID-19 対応の一環として試作したもの
万が一 COVID-19 の発症者が出た場合、
早急に濃厚接触者をリストアップする必要がある
o365events で同じ会議室を利用した人をリストアップする
9. o365events ファイル出力
Office 365 会議室アカウントのメールアドレスを引数に渡すと、
events.xlsx ファイルに出力してくれる
$ o365events room-a@l0wdev.onmicrosoft.com room-b@l0wdev.onmicrosoft.com
2020/04/03 20:24:07 I: User room-a@l0wdev.onmicrosoft.com
2020/04/03 20:24:08 I: Fetching events of room-a@l0wdev.onmicrosoft.com (5fc084ba-
b8fb-479f-bbdc-456ea8b7880b)
2020/04/03 20:24:08 I: Got 28 events
2020/04/03 20:24:08 I: User room-b@l0wdev.onmicrosoft.com
2020/04/03 20:24:08 I: Fetching events of room-b@l0wdev.onmicrosoft.com (9349a25d-
9f8b-47fd-85d2-22b2a512409d)
2020/04/03 20:24:09 I: Got 3 events
2020/04/03 20:24:09 I: Writing to events.xlsx
10. o365events アップロード
SharePoint Online のドキュメントライブラリに
Excel ファイルを直接アップロードすることも可能
$ o365events -start 20200401 -end 20200430
-output https://l0wdev.sharepoint.com/teams/o365events/Shared%20Documents/events.xlsx
room-a@l0wdev.onmicrosoft.com room-b@l0wdev.onmicrosoft.com room-c@l0wdev.onmicrosoft.com
2020/04/04 03:40:35 I: User room-a@l0wdev.onmicrosoft.com
2020/04/04 03:40:37 I: Fetching events of room-a@l0wdev.onmicrosoft.com (5fc084ba-b8fb-479f-bbdc-456ea8b7880b)
2020/04/04 03:40:38 I: Got 28 events
2020/04/04 03:40:38 I: User room-b@l0wdev.onmicrosoft.com
2020/04/04 03:40:38 I: Fetching events of room-b@l0wdev.onmicrosoft.com (9349a25d-9f8b-47fd-85d2-22b2a512409d)
2020/04/04 03:40:39 I: Got 3 events
2020/04/04 03:40:39 I: User room-c@l0wdev.onmicrosoft.com
2020/04/04 03:40:40 I: Fetching events of room-c@l0wdev.onmicrosoft.com (85b5f7d3-47f3-4c95-978f-1d846cbaae7d)
2020/04/04 03:40:40 I: Got 5 events
2020/04/04 03:40:40 I: Writing to https://l0wdev.sharepoint.com/teams/o365events/Shared%20Documents/events.xlsx
13. o365events まとめ①
Go 言語の特長を生かしたツール作成ができた
Windows, macOS, Linux 用の CLI ツールが簡単にビルド・配布できる
msgraph.go で Office 365 リソース (Outlook, SharePoint) に簡単アクセス
14. o365events まとめ②
COVID-19 対策ツール (濃厚接触者追跡)としては課題・改善点が多い
Office 365 カレンダーの情報だけでは会議出席者を完全に追跡できない
Outlook には来客者などが記載されていないことが多い
日次で SharePoint Online に Excel ファイルをアップロードして共有し
出席者情報をみんなで事後補完する運用を目論んだが 、
Excel Online があまりにも使いづらくて断念
PowerApps で Excel の出席者情報を簡単に閲覧・修正できるアプリを
作ろうとして挫折中