Microsoft Graph APIを使って、teamsの情報を抽出する方法
・チームメンバが、日々、何の仕事にどれくらいの稼働をかけているか調べる必要が出た
・普段、チームメンバは、日々の予定をteamsのスケジュールに投入しているので、そこから情報抽出できれば、自動的にメンバの稼働集計できそうだと考えた。
コード
以下のコードをPowershellで流すだけ。
ほぼ、ChatGPT君に作ってもらった
test.onmicrosoft.comにいるtestuserの5月分のteamsカレンダーから、予定の「件名」と予定の「開始・終了時間」を抽出しています。(「開始・終了時間」は、コードを少し変更すれば「所要時間」に変更することも可能)
#######################GraphAPI接続 start
$clientid = “××××××××××"
$tenantName = “test.onmicrosoft.com"
$clientSecret = “××××××××××"
$ReqTokenBody = @{
Grant_Type = “client_credentials"
Scope = “https://graph.microsoft.com/.default"
client_Id = $clientid
Client_Secret = $clientSecret
}
$TokenResponse = Invoke-RestMethod -Uri “https://login.microsoftonline.com/$tenantName/oauth2/v2.0/token" -Method POST -Body $ReqTokenBody
#######################GraphAPI接続 end
#######################GraphAPIで情報取得
$apiUrl = “https://graph.microsoft.com/v1.0/users/testuser1@test.onmicrosoft.com/calendarView?startDateTime=2023-05-01T00:00:00Z&endDateTime=2023-05-31T23:59:59Z%22“
$Data = Invoke-RestMethod -Headers @{Authorization = “Bearer $($TokenResponse.access_token)"} -Uri $apiUrl -Method Get
$Data.value | Select-Object Subject, Start, End | Format-Table -AutoSize
実行結果
subject start end
——- —– —
A市様案件打ち合わせ @{dateTime=2023-05-16T03:00:00.0000000; timeZone=UTC} @{dateTime=2023-05-16T04:30:00.0000000; timeZone=UTC}
B市様設計資料作成 @{dateTime=2023-05-17T04:00:00.0000000; timeZone=UTC} @{dateTime=2023-05-17T07:00:00.0000000; timeZone=UTC}
D県様トラブル対応 @{dateTime=2023-05-17T07:30:00.0000000; timeZone=UTC} @{dateTime=2023-05-17T09:00:00.0000000; timeZone=UTC}
その他
ちなみに、この作業をする前提としてAADにアプリを登録する必要があるのでが、会社のテナントのAAD管理画面の操作権限が私にはないため、実現できなかった。。。。
ディスカッション
コメント一覧
まだ、コメントがありません