C++ から Microsoft Teams にメッセージを投稿する方法(WinHTTP + Graph API)
Microsoft Teams のチャットに自動投稿したい――
そんなときに使えるのが Microsoft Graph API です。
この記事では、WinHTTP を使った C++ コード例と、必要な API 認証の手順をステップバイステップで紹介します。
🔧 必要な準備(Microsoft Graph API の認証設定)
1. Azure ポータルでアプリ登録
まず、Microsoft Graph API を使うには、Azure にアプリを登録する必要があります。
- Azure Portal にアクセス
- 「Microsoft Entra ID」 > 「+追加」 > 「アプリの登録」 > 「新規登録」
- 任意のアプリ名を入力して「登録」
2. API のアクセス許可を追加
- 左メニュー「API のアクセス許可」へ
- 「Microsoft Graph」 > 「アクセス許可を選択する」で下記のスコープを検索して「アクセス許可の更新」
- Chat.ReadWrite
- User.Read
※ チャネルに投稿したい場合は
ChannelMessage.Send
も必要
3. クライアント ID とテナント ID をメモ
「概要」タブに表示される以下の 2 つを控えておきます:
- アプリケーション (クライアント) ID
- ディレクトリ (テナント) ID
4. クライアントシークレットを作成
- 「証明書とシークレット」タブへ
- 「新しいクライアント シークレット」 > 有効期限を設定し、「追加」
- 表示された値(シークレット)をその場で必ず控える
🔐 アクセストークンの取得(OAuth2)
取得には client_credentials
フローを使います。
curl で下記のコマンドを実行して、アクセストークンを取得します。
|
|
レスポンス例
|
|
この access_token を使って Microsoft Graph API を呼び出します。
💬 Teams チャットに投稿する C++ サンプル
ここでは WinHTTP を使ってチャットに投稿する C++ の例を示します。
|
|
🔍 チャット ID の取得方法
チャット ID は GET /v1.0/me/chats で確認できます。
|
|
レスポンス例
|
|
📌 注意点
- このサンプルは最低限の実装です。実運用では:
- トークンの期限切れ処理
- HTTPS 証明書の検証
- エラー処理の強化
- チャネル投稿は teams/{team-id}/channels/{channel-id}/messages を使います。
- 添付ファイルの送信にはマルチパート処理や Graph ドライブ API が必要です。
まとめ
📎 まとめ
機能 | 概要 |
---|---|
Graph API | Teams とやりとりする公式 API |
アプリ登録 | Azure 上で必要な認証手続き |
アクセストークン | OAuth2 により取得し、リクエストに使用 |
C++ 実装 | WinHTTP を利用して Graph API を呼び出す |
🚀 次のステップ
さらに発展的なサンプルとして、以下も可能です:
- チームチャネル投稿 (
/teams/{team-id}/channels/...
) - 添付ファイル付き投稿
- ボットアカウントやユーザーアカウントの切替
- トークン取得も含めた完全 C++ 実装
ご希望があれば、お気軽にコメントしてください!