今更聞けない!?microsoft graph で始める · sharepoint onedrive teams planner excel...
TRANSCRIPT
今更聞けない!?Microsoft Graph で始める
Office 365 データ活用と事例の紹介
AD33
今更きけない!? Microsoft Graph で始める Office 365 データ活用と事例の紹介
AD 33
中村憲一郎 (kenakamu)
ソリューションアーキテクトhttps://qiita.com/kenakamu
趣味: MCP を取ること
好きな技術は主に、C#, UWP,
Xamarin, API, PowerShell, DB,
Node.js
https://github.com/kenakamu/
Microsoft Graph
本日の目標
ご説明すること
Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例
ご説明すること
Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例
Microsoft Graph
https://graph.microsoft.com
Microsoft Graph
全てのMicrosoft 365 のデータ
Office 365
Windows 10
EMS
全ての 1 つの
/me
なぜMicrosoft Graph?歴史的背景
多くのMicrosoft 製品
Exchange
SharePoint
Office
Active Directory
異なる 複数の
なぜMicrosoft Graph?歴史的背景
Office 365 Unified API (REST)
Azure AD 認証 (OAuth 2.0)
なぜMicrosoft Graph?歴史的背景
Microsoft Graph
Microsoft Graph
全てのMicrosoft 365 のデータ
Office 365
Windows 10
EMS
全ての 1 つの
Microsoft Graph
Microsoft Graph
Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例
Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例API 紹介
Tips
Microsoft Graph における認証
Azure AD
アプリケーションはAzure AD に登録
OAuth 2.0
アクセストークンベースの認可
OpenID Connect
認証情報の利用
アクセス許可の種類
委任されたアクセス
ユーザーが明示的にアプリに権限を委任
/me が利用可能
アプリケーションアクセス
管理者による事前同意でサービスとして実行
/me が利用不可能
Read や
ReadWrite 等の
操作
All, Shared 等の
操作の範囲制約
操作対象の
リソース
Microsoft Graph の権限
Microsoft Graph の権限
Azure AD の認証エンドポイント
v1.0 エンドポイント
対象: Azure AD/ADFS登録: portal.azure.com
SDK: ADAL
v2.0 エンドポイント
対象: Azure AD/B2C/MSA登録: apps.dev.microsoft.com
SDK: MSAL
アプリの種類
シナリオ
同意実行者
実際の権限
委任の権限 アプリケーション権限
モバイル、Web、SPA バックグランドサービス
ユーザー権限は
ユーザーが同意
管理者権限は
管理者が同意管理者のみが同意可能
アプリに付与
された権限
全て
サービスとして委任でユーザーの代理として
実際
の
権限
アプリに付与
された権限ユーザーの
権限
デモ : アプリケーションの登録
デモ : MSAL を利用したアプリ
Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例認証
API 紹介
Tips
Microsoft Graph を使った開発
試す
Microsoft Graph エクスプローラー、クイックスタート
学ぶ
ドキュメントとAPI レファレンス
開発する
SDK、サンプル、ツールOpen API 定義
Microsoft Graph
ユーザー, グループ、組織
Outlook
SharePoint
OneDrive
Teams
Planner
Excel
OneNote
Activities
デバイスリレー
コマンド
通知
Azure AD
Intune
Identity Manager
Advanced Threat
Analytics
Advanced Threat
Protection
メール, 予定, 連絡先
サイト、リスト
ドライブ、ファイル
チャネル, メッセージ
プラン、タスク
スプレッドシート、グラフ
ノート、ページ
ID 管理
アクセス制御
同期
ドメイン
管理ユニット
アプリケーションとデバイス
ATA/ATP
アラート
ポリシー
Office 365 Windows 10 EMS
Microsoft Graph
ブラウザですぐ試せる 利用できるアカウント:
サンプル組織アカウントマイクロソフトアカウント
オープンソース
デモ : Graph エクスプローラー
Microsoft Graph操作 HTTP メソッド 説明 例
一覧表示 GET アイテム一覧の取得 GET /users
取得 GET 特定アイテムの取得 GET /users/{id}
作成 POST/PUT 新規アイテムの作成 POST /users/
PUT /me/activities/{id}
更新 PATCH/PUT アイテムの更新 PATCH /users/{id}
PUT /me/activities/{id}
削除 DELETE アイテムの削除 DELETE /users/{id}
実行 POST 操作の実行 POST /domains/{id}/verify
バッチ POST 複数要求の実行 POST /$batch
Microsoft Graph
クエリ 説明 例
$filter 行のフィルター /users?$filter=startsWith(givenName,’J’)
$select 列のフィルター /users?$select=givenName,surname
$orderBy 結果の並べ替え /users?$orderBy=displayName desc
$top ページサイズの設定 /users?$top=10
$expand 関連リソースの取得 /groups?$expand=members
$count 条件にあうレコード数を取得 /me/messages?$top=2&count=true
$search メールと人物に対して検索 /me/messages?$search=pizza
Microsoft Graph API
1. ユーザーのプロファイル写真
要求
/photo/$value
応答
HTTP/1.1 200 OK
2. OneDrive ファイルのサムネイル要求
thumbnails
応答
HTTP/1.1 200 OK
3. Microsoft Teams ライフサイクル
4. Activities APIs と Windows タイムライン
要求
myAppActivityId
{
"appActivityId": "myAppActivityId",
"appDisplayName": "MyApp",
"activationUrl": "[protocol]://uri/",
"visualElements": {..}
"historyItems":[..]
}
5. Excel のグラフ画像要求
image
応答
HTTP/1.1 200 OK
デモ : Excel のグラフ画像
6. Microsoft Graphの拡張
オープン拡張
型が無いデータを簡単に格納
スキーマ拡張
型を持ったデータを格納。フィルターが行え共有しやすい
7. レポート要求
getOneDriveUsageFileCounts(period='D7’)
応答
8. インテリジェント機能
人の関連
メールや会話の頻度から、組織構造を超えた関連を取得
ドキュメントのトレンド
自分に関係があり、多くの人が見ているドキュメントの抽出
最近使った、または共有されたドキュメント
重度の高いドキュメントの抽出
Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例認証
API 紹介
Tips
TIP 1 | POST/PATCH/PUT
結果が必要ない場合は応答を省略
不要なデータを削減してパフォーマンス向上
Tip
Prefer return=minimal
要求ヘッダーの指定
TIP 2 | 取得列の最適化
必要なプロパティのみ指定
不要なデータを削減してパフォーマンス向上
Tip
$select の利用
GET ?
$select=givenName,mail
TIP 3 | 取得行の最適化
必要なレコードのみ取得
不要なデータを削減してパフォーマンス向上
Tip
$filter の利用
GET ?
$filter=department eq ‘Sales’&
$select=givenName,mail
TIP 4 |
サーバー側で
返すレコード数
上限あり
コレクション取得で
ページングの可能性
常にあり
Tip
@odata.nextLink を
常に確認
1.常にページングされ
ている前提をもつ
リンクで次のページを
取得
無くなった時点で全レ
コードの取得完了
リンクは変更せず使
用
TIP 5 | Webhooks + 差分クエリ
ポーリング以上に
最適化された
変更の追跡
最適なポーリング
間隔を
決めることが困難
Tip
Webhook をトリガー
差分クエリで
データを取得
@odata.nextLink
ページング中次ページのリンク
@odata.deltaLink
レコードは取得済差分クエリのリンク
TIP 6 | Microsoft Graph
PowerApps
Office 用の
テンプレート
Microsoft Flow
Office トリガーと
Office コネクター
Azure Functions
Microsoft Graph
バインディング
Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例
事例 1 |
シナリオ
入社、異動、退社などの人の動きや、複数場所に散在するプロファイルの一元化
処理
各種プロパティの設定ライセンスの付与グループへの追加情報の共有初期タスクの追加ネットワークの共有、等
実装
Microsoft FlowAzure FunctionPowerShell、等
事例 2 |
シナリオ
顧客管理システムや、他社内システムとMicrosoft Teams の連携
処理
チームの作成プロパティの設定所有者とメンバーの管理チームの削除
実装
Microsoft FlowAzure FunctionBot FrameworkPowerShell、等
事例 3 |
シナリオ
OneDrive、SharePoint など複数個所に散在するドキュメントの資産化
処理
ファイルのコピー/移動PDF へ変換共有の開始/停止
実装
Webhook/差分クエリMicrosoft FlowAzure Function
事例 4 |
シナリオ
会議の開催から、会議中の議事録、および会議後の情報共有
処理
参加者空き時間会議室の予約議事録の保存や共有タスクの割り当て
実装
PowerAppsカスタムアプリ
事例 5 |
シナリオ
客先訪問など、移動を含んだ予定が複数ある場合の最適化
処理
予定の取得移動情報の取得予定の更新前後予定の作成
実装
Webhook/差分クエリMicrosoft FlowBot FrameworkAzure Function
共通 |ベストプラクティス
トリガー
手動イベント発生時タイマー
処理
データの取得データの追加他サービス連携データをよりリッチに
実装
ユーザー操作アプリの場所サービス
まとめ
ご説明したこと
Microsoft Graph
本日の目標
Microsoft Graph
Microsoft Graph 今後の予定
新機能
クライアント通知Teams 各種機能Security API
ベータから正式に
各種ベータは正式に
情報
TwitterStack OverflowBlogビデオ
https://graph.microsoft.com
#MicrosoftGraph
GitHub
/MicrosoftGraph
StackOverflow
[MicrosoftGraph]
© 2018 Microsoft Corporation. All rights reserved.
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。