SlideShare una empresa de Scribd logo
1 de 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 も解説の記事を書きます!
おわり

Más contenido relacionado

Similar a 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
 

Similar a 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 で発表された内容とそれ以降のアップデートを確認してみる
 

Más 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
 

Más 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 モジュール 作成・配布・貢献
 

Último

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Último (12)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

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 も解説の記事を書きます!