Microsoft Teams APIとGraph APIの関係
Microsoft Teamsの機能にAPIでアクセスするには、主にMicrosoft Graph APIを使います。Graph APIはMicrosoft 365(Teams・Outlook・SharePoint・OneDrive等)の各サービスへのアクセスを統一したAPIです。Teamsへのメッセージ送信・会議の管理・チャンネルの作成・ユーザー管理などがGraph APIで操作できます。
認証の設定(Azure AD)
- Azure Portal(portal.azure.com)でApp Registrationを作成
- 必要なAPIパーミッションを追加(ChannelMessage.Send等)
- クライアントシークレット(またはcertificate)を作成
- テナントID・クライアントID・シークレットを取得
- 管理者による同意(Admin Consent)を取得
サーバー間通信(アプリケーション権限)の場合はOAuth 2.0クライアントクレデンシャルフローを使います。
Teamsチャンネルへのメッセージ送信
const accessToken = await getAccessToken(); // クライアントクレデンシャルフロー
const response = await fetch(
`https://graph.microsoft.com/v1.0/teams/${teamId}/channels/${channelId}/messages`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
body: {
contentType: 'text',
content: 'デプロイが完了しました ✅'
}
})
}
);
Adaptive Cards
Adaptive CardsはTeams・Outlook・Cortana等で使えるカード型UIの仕様です。テキスト・画像・ボタン・入力フォームを含むリッチなメッセージを作れます。Adaptive Cards Designerを使ってビジュアルでデザインし、JSONを生成できます。
Power Automate(旧Flow)との連携
プログラミングを使わずTeamsと他サービスを連携するには、Microsoft Power AutomateのTeamsコネクタが便利です。Webフォーム送信→Teamsに通知、受信メール→Teamsに転送などのワークフローをGUI操作で作成できます。エンジニア以外でも活用できます。
Teams Webhookによる通知
Incoming Webhookコネクタ(廃止予定)の代替として、Workflows app(Power Automateベース)への移行が推奨されています。または、Graph APIのチャットメッセージ送信APIを直接使う方法も選択肢です。
Graph APIで取得できる会議データ
- 会議の開催・参加者情報
- オンライン会議のURL生成
- 会議の録画URL(OneDriveに保存された場合)
- 出席者のリスト・参加時間
まとめ
Microsoft Teams APIはGraph APIを通じてTeamsの機能にアクセスする強力なプラットフォームです。Microsoft 365環境でビジネスを展開している企業では、Teams APIを活用した業務自動化・通知システムの構築が効果的です。Azure AD認証の設定が最初のハードルですが、一度設定すれば幅広いMicrosoft 365サービスと連携できます。