Microsoft 365 テナントには、会議室や共有スペースといった「場所(Places)」の情報が管理されています。CData Driver for Office 365 の Rooms ビューを使えば、Microsoft Graph API の複雑な認証・呼び出しを意識することなく、使い慣れた SQL を通じてこれらのデータを取得できます。会議室の一覧取得からキャパシティの確認まで、BI ツールやスクリプトから直接クエリするだけで完結します。
Microsoft Graph の Places API について
Microsoft Graph v1.0 の Places API は、組織内の物理スペースを統一的に管理・取得するためのエンドポイントを提供します。会議室(Room)以外にも以下の場所タイプをサポートしています。
場所タイプ | エンドポイント |
会議室(Room) | /places/microsoft.graph.room
|
ワークスペース | /places/microsoft.graph.workspace
|
会議室リスト | /places/microsoft.graph.roomList
|
建物(Building) | /places/microsoft.graph.building
|
フロア(Floor) | /places/microsoft.graph.floor
|
デスク(Desk) | /places/microsoft.graph.desk
|
CData Driver for Office 365 の Rooms ビューはこの API を内部的に呼び出し、SQL でシームレスにアクセスできるように抽象化します。
設定手順
1. Azure AD アプリを登録する
場所情報を取得するにはAzure ADアプリの登録が必要です。ドキュメントを参考にアプリを作成してください。その際、API のアクセス許可に Place.Read.All を追加します。組織のデータを取得する場合はテナント管理者による同意(Admin consent)が必要です。

2. CData Driver for Office 365 の接続文字列を設定する
以下の接続文字列を参考に、対象テナントの情報を入力します。
JDBC の場合
String connectionString =
"jdbc:office365:" +
"InitiateOAuth=GETANDREFRESH;" +
"OAuthClientId=[your_client_id];" +
"OAuthClientSecret=[your_client_secret];" +
ODBC の場合(DSN)
プロパティ | 説明 |
AuthScheme | AzureAD
|
InitiateOAuth | GETANDREFRESH を指定すると初回起動時に自動でトークンを取得
|
OAuthClientId | Azure AD アプリのクライアント ID |
OAuthClientSecret | Azure AD アプリのクライアントシークレット |

3. 接続を確認する
接続が成功したら、以下の SQL でテーブル一覧を確認しますRooms ビューが存在することを確認してください。
SELECT * FROM sys_tables
会議室データを取得する SQL クエリ
すべての会議室を取得する
SELECT *
FROM Rooms;
主要カラム一覧
カラム名 | 説明 |
|---|
Id
| 会議室の内部 ID |
EmailAddress
| 会議室のメールアドレス |
DisplayName
| 表示名(例: 「会議室 A」) |
Nickname
| 短縮名 |
Capacity
| 収容人数 |
Building
| 建物名 |
FloorNumber
| フロア番号 |
IsWheelChairAccessible
| 車椅子対応の有無 |
AudioDeviceName
| 音声デバイス名 |
VideoDeviceName
| ビデオデバイス名 |
DisplayDeviceName
| ディスプレイデバイス名 |
BookingType
| 予約種別(standard / reserved) |
Tags
| タグ(複数の特徴を示すラベル) |
Phone
| 電話番号 |
収容人数で絞り込む(10名以上の会議室)
SELECT DisplayName, EmailAddress, Capacity, Building, FloorNumber
FROM Rooms
WHERE Capacity >= 10
ORDER BY Capacity DESC;
車椅子対応の会議室を取得する
SELECT DisplayName, Building, FloorNumber, Capacity
FROM Rooms
WHERE IsWheelChairAccessible = 1;
ビデオ会議設備がある会議室を絞り込む
SELECT DisplayName, EmailAddress, VideoDeviceName, AudioDeviceName, Capacity
FROM Rooms
WHERE VideoDeviceName IS NOT NULL
ORDER BY DisplayName;
建物ごとの会議室数を集計する
SELECT Building, COUNT(*) AS RoomCount, SUM(Capacity) AS TotalCapacity
FROM Rooms
GROUP BY Building
ORDER BY RoomCount DESC;
まとめ
CData Driver for Office 365 の Rooms ビューを使うことで、Microsoft Graph の Places API を直接呼び出すことなく、標準 SQL を通じて会議室データにアクセスできますPlace.Read.All 権限の付与と接続文字列の設定を済ませれば、あとは馴染みのあるクエリで会議室の一覧取得・フィルタリング・集計が可能です。会議室の利用状況分析や施設管理ツールとの連携など、さまざまなシナリオで活用してみてください。