SlideShare une entreprise Scribd logo
1  sur  16
第 29 回 Office 365 勉強会
2020-04-04 Takeshi Yaegashi
自己紹介
八重樫 剛史 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」
今日の話題
 Microsoft Graph について
 Go 言語について
 msgraph.go について
 o365events (COVID-19 対策ツール) について
Microsoft Graph
 https://developer.microsoft.com/ja-jp/graph
 Microsoft のクラウドリソースを統一的に扱える RESTful API サービス
 様々な Office 365 アプリのバックエンド
 Azure Active Directory: ユーザー、グループ、アプリ登録、ライセンス、etc.
 オンラインアプリ: SharePoint, OneDrive, OneNote, Outlook, Teams, Excel, etc.
Go 言語
 https://golang.org/
 Google 製のプログラミング言語 (2009)
 C ライクでシンプルな文法、豊富なライブラリ
 サーバー、インフラ、コマンドラインツール (CLI) が得意分野
 Docker、Kubernetes、Terraform など、
現代のクラウドインフラの実装主力言語
 マルチプラットフォーム
 Windows, macOS, Linux の実行ファイルが簡単に作れる
 マスコット Gopher (ホリネズミ)
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 ユーザーもあっというまに作れる
o365events
 https://github.com/yaegashi/o365events
 msgraph.go で作ったコマンドラインツール (CLI)
 Office 365 カレンダーからイベントと出席者一覧を Excel 形式で出力
 SharePoint Online のドキュメントライブラリに直接アップロード
 Windows, macOS, Linux 版の実行ファイルを提供 (リリース)
 COVID-19 対応の一環として試作したもの
 万が一 COVID-19 の発症者が出た場合、
早急に濃厚接触者をリストアップする必要がある
 o365events で同じ会議室を利用した人をリストアップする
o365events 使用方法
 初回実行時に次のように出力されるので、
https://microsoft.com/devicelogin を開いてコード (下記例ではHDZSYAKLD)
を入力しカレンダーにアクセス権限のあるユーザーでサインインする
 token_cache.json という認証情報が書かれたファイルが作られる
次回以降はこのファイルを使って自動サインインする
$ o365events
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and
enter the code HDZSYAKLD to authenticate.
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
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
o365events 予定表の例
会議室アカウントが3つある
room-a@l0wdev.onmicrosoft.com
room-b@l0wdev.onmicrosoft.com
room-c@l0wdev.onmicrosoft.com
o365events Excel 出力例
会議室アカウントごとに
ワークシートが作られる
会議ごとの
出席者のリスト
Outlook
Online
リンク
o365events まとめ①
 Go 言語の特長を生かしたツール作成ができた
 Windows, macOS, Linux 用の CLI ツールが簡単にビルド・配布できる
 msgraph.go で Office 365 リソース (Outlook, SharePoint) に簡単アクセス
o365events まとめ②
 COVID-19 対策ツール (濃厚接触者追跡)としては課題・改善点が多い
 Office 365 カレンダーの情報だけでは会議出席者を完全に追跡できない
Outlook には来客者などが記載されていないことが多い
 日次で SharePoint Online に Excel ファイルをアップロードして共有し
出席者情報をみんなで事後補完する運用を目論んだが 、
Excel Online があまりにも使いづらくて断念
 PowerApps で Excel の出席者情報を簡単に閲覧・修正できるアプリを
作ろうとして挫折中
msgraph.go 情報
 msgraph.go
https://github.com/yaegashi/msgraph.go
 package msgraph (v1.0) リファレンスマニュアル
https://pkg.go.dev/github.com/yaegashi/msgraph.go/v1.0
 msgraph.go プログラミング入門
https://l0w.dev/posts/msgraph.go-programming/
 o365events も解説の記事を書きます!
おわり

Contenu connexe

Similaire à msgraph.go: Go言語で Microsoft Graph プログラミング

Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法Nagao Hiroaki
 
それは本当にAutomate? 改めて考えるPower Automate
それは本当にAutomate? 改めて考えるPower Automateそれは本当にAutomate? 改めて考えるPower Automate
それは本当にAutomate? 改めて考えるPower AutomateTomoyuki Obi
 
Azure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取るAzure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取るDevTakas
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...典子 松本
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介Yuta Matsumura
 
Power Platform Summary
Power Platform  SummaryPower Platform  Summary
Power Platform SummaryYugo Shimizu
 
SharePoint Framework によるモダンサイトのカスタマイズ
SharePoint Framework によるモダンサイトのカスタマイズSharePoint Framework によるモダンサイトのカスタマイズ
SharePoint Framework によるモダンサイトのカスタマイズHiroaki Oikawa
 
Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版Takeshi Fukuhara
 
Event Report - Microsoft Ignite2017
Event Report - Microsoft Ignite2017Event Report - Microsoft Ignite2017
Event Report - Microsoft Ignite2017Yukako Shimizu
 
Office アドインの紹介
Office アドインの紹介Office アドインの紹介
Office アドインの紹介kinuasa
 
Teams を使ったオンライン講習会Tips
Teams を使ったオンライン講習会TipsTeams を使ったオンライン講習会Tips
Teams を使ったオンライン講習会Tipsmokudai masayuki
 
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきますCDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきますYugo Shimizu
 
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recapマイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 RecapAyako Omori
 
Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.Takao Tetsuro
 
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選Hirofumi Ota
 
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~Yugo Shimizu
 
チャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティチャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティAtsushi Yokohama (BEACHSIDE)
 
[Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう!
[Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう![Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう!
[Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう!Tomomi Imura
 
Ignite で発表された内容とそれ以降のアップデートを確認してみる
Ignite で発表された内容とそれ以降のアップデートを確認してみるIgnite で発表された内容とそれ以降のアップデートを確認してみる
Ignite で発表された内容とそれ以降のアップデートを確認してみるYugo Shimizu
 

Similaire à msgraph.go: Go言語で Microsoft Graph プログラミング (20)

Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法
 
それは本当にAutomate? 改めて考えるPower Automate
それは本当にAutomate? 改めて考えるPower Automateそれは本当にAutomate? 改めて考えるPower Automate
それは本当にAutomate? 改めて考えるPower Automate
 
Azure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取るAzure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取る
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
 
Power Platform Summary
Power Platform  SummaryPower Platform  Summary
Power Platform Summary
 
SharePoint Framework によるモダンサイトのカスタマイズ
SharePoint Framework によるモダンサイトのカスタマイズSharePoint Framework によるモダンサイトのカスタマイズ
SharePoint Framework によるモダンサイトのカスタマイズ
 
Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版
 
Event Report - Microsoft Ignite2017
Event Report - Microsoft Ignite2017Event Report - Microsoft Ignite2017
Event Report - Microsoft Ignite2017
 
Office アドインの紹介
Office アドインの紹介Office アドインの紹介
Office アドインの紹介
 
Teams を使ったオンライン講習会Tips
Teams を使ったオンライン講習会TipsTeams を使ったオンライン講習会Tips
Teams を使ったオンライン講習会Tips
 
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきますCDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます
 
Two Dataflows
Two DataflowsTwo Dataflows
Two Dataflows
 
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recapマイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
 
Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.
 
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
 
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
 
チャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティチャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティ
 
[Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう!
[Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう![Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう!
[Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう!
 
Ignite で発表された内容とそれ以降のアップデートを確認してみる
Ignite で発表された内容とそれ以降のアップデートを確認してみるIgnite で発表された内容とそれ以降のアップデートを確認してみる
Ignite で発表された内容とそれ以降のアップデートを確認してみる
 

Plus de yaegashi

Terraforming Windows Virtual Desktop Infrastructure on Azure
Terraforming Windows Virtual Desktop Infrastructure on AzureTerraforming Windows Virtual Desktop Infrastructure on Azure
Terraforming Windows Virtual Desktop Infrastructure on Azureyaegashi
 
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CDAzure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CDyaegashi
 
Customazed CLI: カスタムVMイメージ作成支援ツール
Customazed CLI: カスタムVMイメージ作成支援ツールCustomazed CLI: カスタムVMイメージ作成支援ツール
Customazed CLI: カスタムVMイメージ作成支援ツールyaegashi
 
Goで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティGoで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティyaegashi
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築yaegashi
 
msgraph: Terraform provider for Microsoft Graph
msgraph: Terraform provider for Microsoft Graphmsgraph: Terraform provider for Microsoft Graph
msgraph: Terraform provider for Microsoft Graphyaegashi
 
go generate 完全入門
go generate 完全入門go generate 完全入門
go generate 完全入門yaegashi
 
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話yaegashi
 
golang binary hacks
golang binary hacksgolang binary hacks
golang binary hacksyaegashi
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件yaegashi
 
Ansible モジュール 作成・配布・貢献
Ansible モジュール 作成・配布・貢献Ansible モジュール 作成・配布・貢献
Ansible モジュール 作成・配布・貢献yaegashi
 

Plus de yaegashi (11)

Terraforming Windows Virtual Desktop Infrastructure on Azure
Terraforming Windows Virtual Desktop Infrastructure on AzureTerraforming Windows Virtual Desktop Infrastructure on Azure
Terraforming Windows Virtual Desktop Infrastructure on Azure
 
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CDAzure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
 
Customazed CLI: カスタムVMイメージ作成支援ツール
Customazed CLI: カスタムVMイメージ作成支援ツールCustomazed CLI: カスタムVMイメージ作成支援ツール
Customazed CLI: カスタムVMイメージ作成支援ツール
 
Goで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティGoで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティ
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
 
msgraph: Terraform provider for Microsoft Graph
msgraph: Terraform provider for Microsoft Graphmsgraph: Terraform provider for Microsoft Graph
msgraph: Terraform provider for Microsoft Graph
 
go generate 完全入門
go generate 完全入門go generate 完全入門
go generate 完全入門
 
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話
 
golang binary hacks
golang binary hacksgolang binary hacks
golang binary hacks
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
 
Ansible モジュール 作成・配布・貢献
Ansible モジュール 作成・配布・貢献Ansible モジュール 作成・配布・貢献
Ansible モジュール 作成・配布・貢献
 

Dernier

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Dernier (10)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

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」
  • 3. 今日の話題  Microsoft Graph について  Go 言語について  msgraph.go について  o365events (COVID-19 対策ツール) について
  • 4. Microsoft Graph  https://developer.microsoft.com/ja-jp/graph  Microsoft のクラウドリソースを統一的に扱える RESTful API サービス  様々な Office 365 アプリのバックエンド  Azure Active Directory: ユーザー、グループ、アプリ登録、ライセンス、etc.  オンラインアプリ: SharePoint, OneDrive, OneNote, Outlook, Teams, Excel, etc.
  • 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 で同じ会議室を利用した人をリストアップする
  • 8. o365events 使用方法  初回実行時に次のように出力されるので、 https://microsoft.com/devicelogin を開いてコード (下記例ではHDZSYAKLD) を入力しカレンダーにアクセス権限のあるユーザーでサインインする  token_cache.json という認証情報が書かれたファイルが作られる 次回以降はこのファイルを使って自動サインインする $ o365events To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code HDZSYAKLD to authenticate.
  • 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 の出席者情報を簡単に閲覧・修正できるアプリを 作ろうとして挫折中
  • 15. msgraph.go 情報  msgraph.go https://github.com/yaegashi/msgraph.go  package msgraph (v1.0) リファレンスマニュアル https://pkg.go.dev/github.com/yaegashi/msgraph.go/v1.0  msgraph.go プログラミング入門 https://l0w.dev/posts/msgraph.go-programming/  o365events も解説の記事を書きます!