M365関連 プログラム 技術

C#・PowerShellで会議室のイベントを取得(委任されたアクセス許可版)<実行編>

前回の記事
C#・PowerShellで会議室のイベントを取得(委任されたアクセス許可版)<準備編> - ナストンのまとめ
C#・PowerShellで会議室のイベントを取得(委任されたアクセス許可版)<準備編> - ナストンのまとめ

以前、MicroSoftGraphAPIをアプリケーション認証で実施する方法を記載しましたが、場合によってはセキュリティ ...

続きを読む

前回、ユーザー認証でアクセストークンを取得できるように設定できたので、それを使用して実際に会議室の情報を取得していきます

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

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

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

アクセストークン取得時に以下の画像にある、権限名が必要となります

上記のそれぞれの値をセットし、アクセストークンを取得する方法は以下の通りになります
アクセストークンを取得する際に使用するユーザーは二段階認証の設定がないものを使用しないとエラーとなります

$tenantName = "前回作成したアプリのあるテナントID"
$clientUserid = "前回作成したアプリのID"
$clientUserSecret = "前回作成したアプリのクライアントシークレットキーの値"
$userName = "認証時に使用するユーザーアドレス(二段階認証のかかっていないもの)"
$userPass = "$userNameのパスワード"

# アクセストークン取得用データ
$ReqUserTokenBody = @{
    Grant_Type    = "password"
    username      = $userName
    password      = $userPass
    client_Id     = $clientUserid
    Client_Secret = $clientUserSecret
    Scope         = "Calendars.Read Calendars.Read.Shared" # Azureアプリに含まれていないとエラーが発生する

}

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

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

ここからはアプリケーション認証版と変わりはありません

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

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

while ($true) {
    $User_Data = Invoke-RestMethod -Headers @{Authorization = "Bearer $($TokenUserResponse.access_token)"} -Uri $apiUrl -Method Get
    $User_Calendars = ($User_Data | select-object Value ).Value
    $User_Calendars

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

最後に

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

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

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

続きを読む

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社
アドバンスド・ソリューション株式会社

アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...

サイトへ移動

お問い合わせ
お問い合わせ  | アドバンスド・ソリューション株式会社
お問い合わせ | アドバンスド・ソリューション株式会社

お問い合わせはこちら

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