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

Mais conteúdo relacionado

Semelhante 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
 

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

Mais 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
 

Mais 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

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Último (8)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

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