M365関連 プログラム 技術

C#・PowerShellで会議室のイベントを取得(アプリケーション版)<実行編>

前回はMSGraphAPIを使用するための準備をしました。今回は実際にC#やPowerShellで呼び出します

前回の記事
C#・PowerShellで会議室のイベントを取得(アプリケーション版)<準備編> - ナストンのまとめ
C#・PowerShellで会議室のイベントを取得(アプリケーション版)<準備編> - ナストンのまとめ

以前、業務で会議室の使用状況を取得するツールを作成する必要があり、その際に調べて実装したメモとなります API アクセス ...

続きを読む

アクセストークンを取得する

まず、アクセストークンを取得する際に使用するテナントIDは以下の値を使用します

アプリケーションのIDは以下の値を使用します

上記のそれぞれの値をセットし、アクセストークンを取得する方法は以下の通りになります

$tenantName      = "前回の記事で作成したアプリのあるテナントID"
$clientAppid     = "前回の記事で作成したアプリのID"
$clientAppSecret = "前回の記事で作成したアプリのクライアントシークレットキーの値"

# アクセストークン取得用データ
$ReqAppTokenBody = @{
    Grant_Type    = "client_credentials"                    # 今回の使用する認証の種類
    Scope         = "https://graph.microsoft.com/.default"  # アプリケーション認証の場合はこのまま
    client_Id     = $clientAppid                            # アプリケーションのID
    Client_Secret = $clientAppSecret                        # アプリのシークレットキーの値
}

# アクセストークンを取得
$TokenAppResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantName/oauth2/v2.0/token" -Method POST -Body $ReqAppTokenBody

これで以下のようにアクセストークンを取得できます

実際に会議室の情報を取得する

startDateTime(取得開始日時)とendDateTime(取得終了日時)は必須の項目でフォーマットは【yyyy-MM-ddTHH:mm:ss】となります。また、今回は会議名、会議開始時間、会議終了時間、主催者、参加者のみのプロパティを取得するようにしています。

上位10件しかデータ取得できないので「@odata.nextLink」というプロパティがあれば、そのプロパティには次の10件の取得用URLが記載されているのでそこに再度Getリクエストを投げとデータ取得できます

$TargetRoom = "対象となる会議室のメールアドレス"
$apiUrl = 'https://graph.microsoft.com/v1.0/users/' + $TargetRoom + '/calendarView?startDateTime=2023-01-01T00:00:00&endDateTime=2023-05-31T23:59:59&$select=subject,start,end,organizer,attendees'
while ($true) {
    $App_Data = Invoke-RestMethod -Headers @{Authorization = "Bearer $($TokenAppResponse.access_token)"} -Uri $apiUrl -Method Get
    $App_Calendars = ($App_Data | select-object Value ).Value
    $App_Calendars

    $NextLink = $App_Data.'@odata.nextLink'
    $apiUrl = $NextLink
    if($null -eq $NextLink) {
        break;
    }
}

最後に

これで会議室の情報を取得できるようになりました。取得できる項目等を確認するために以下のサイトであらかじめテストができます。また、今回作成したコード(C#・PowerShell)をGitHubにアップしていますので参考にしてください

MSサイト
Graph Explorer | Try Microsoft Graph APIs - Microsoft Graph
Graph Explorer | Try Microsoft Graph APIs - Microsoft Graph

Try the Graph Explorer developer tool to learn about Microso ...

続きを読む

 

サンプル
BlogSampleCodeProjects/MicroSoftGraphAPI_App at main · nasuton/BlogSampleCodeProjects · GitHub
BlogSampleCodeProjects/MicroSoftGraphAPI_App at main · nasuton/BlogSampleCodeProjects · GitHub

Project for sample code used in the blog.(Blogで記載しているサンプルコード ...

続きを読む

-M365関連, プログラム, 技術
-, , ,