> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Teams

> Microsoft Graph で Microsoft Teams を操作

## 概要

Microsoft Teams ツールでは、チーム・チャネル・チャット・チャネルメッセージ・チャットメッセージの取得、メッセージの横断検索、オンライン会議の取得、チーム・プライベート/共有チャネル・グループチャットへのメンバー追加、チャネルまたはチャット (DM) へのメッセージ送信、スレッド返信、チャネルの作成、1 対 1 またはグループチャットの作成を Microsoft Graph 経由で行えます。

## 主な機能

* `TEAMS_LIST_TEAMS`
  * ユーザーが参加している Teams の一覧を取得。
* `TEAMS_LIST_CHANNELS`
  * チーム内のチャネル一覧を取得。
* `TEAMS_LIST_CHANNEL_MESSAGES`
  * チャネルに投稿されたメッセージを取得。スレッド返信も含めて取得できます。
* `TEAMS_LIST_CHATS`
  * サインイン中のユーザーが参加しているチャット一覧を取得。
* `TEAMS_LIST_CHAT_MESSAGES`
  * 1 対 1 またはグループチャットに投稿されたメッセージを取得。
* `TEAMS_SEARCH_MESSAGES`
  * Microsoft Graph Search を使って Teams メッセージを横断検索。日時範囲の指定やページネーションにも対応。
* `TEAMS_LIST_ONLINE_MEETINGS`
  * join URL / video teleconference ID で Teams オンライン会議を取得、またはカレンダー期間から Teams 会議を抽出。
* `TEAMS_GET_ONLINE_MEETING`
  * Graph meeting ID、join URL、video teleconference ID から Teams オンライン会議を取得。
* `TEAMS_ADD_CHANNEL_MEMBER`
  * プライベートまたは共有チャネルにユーザーをメンバーまたは所有者として追加。
* `TEAMS_ADD_TEAM_MEMBER`
  * チームにユーザーをメンバーまたは所有者として追加。標準（公開）チャネルはチームメンバーシップを継承するため、こちらを使用します。
* `TEAMS_ADD_CHAT_MEMBER`
  * 既存のグループチャットにユーザーを追加。過去履歴の共有可否も指定できます。
* `TEAMS_SEND_MESSAGE`
  * Teams チャネルにメッセージを送信（プレーンテキスト/HTML 形式）。
* `TEAMS_REPLY_TO_MESSAGE`
  * Teams チャネルメッセージのスレッドに返信。
* `TEAMS_CREATE_CHANNEL`
  * チーム内に新しいチャネルを作成（公開/非公開）。
* `TEAMS_CREATE_CHAT`
  * 1 対 1 またはグループチャットを新規作成。サインイン中のユーザーは自動的に追加されます。
* `TEAMS_SEND_CHAT_MESSAGE`
  * Teams チャット (DM) にメッセージを送信。プレーンテキストと HTML に対応。

## 認証

Microsoft Graph OAuth トークンが必要です。

[Jinba のシークレット設定](https://flow.jinba.io/workspace/secrets) で Microsoft アカウント（Teams）を連携し、発行されたトークンをツールの config に指定してください。

Teams OAuth 接続では、チャネルメッセージ、チャットメッセージ、チャネル、チャネルメンバー、チームメンバー、チャットメンバー、チーム、メッセージ送信、トークン更新に必要な Microsoft Graph scope を要求します。これらの scope 追加前に作成済みの Teams シークレットは、再連携が必要です。チームメンバー追加（`TeamMember.ReadWrite.All`）やチャットメンバー追加（`ChatMember.ReadWrite`）は、テナントによっては管理者同意が必要です。

### 例：Teams 一覧取得、プライベートチャネル作成、メンバー追加、メッセージ送信

```yaml theme={null}
- id: list_teams
  name: list_teams
  tool: TEAMS_LIST_TEAMS
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input: []

- id: list_channels
  name: list_channels
  tool: TEAMS_LIST_CHANNELS
  needs: ["list_teams"]
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: team_id
      value: "{{steps.list_teams.result.teams[0].id}}"

- id: list_channel_messages
  name: list_channel_messages
  tool: TEAMS_LIST_CHANNEL_MESSAGES
  needs: ["list_teams", "list_channels"]
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: team_id
      value: "{{steps.list_teams.result.teams[0].id}}"
    - name: channel_id
      value: "{{steps.list_channels.result.channels[0].id}}"
    - name: include_replies
      value: true

- id: list_chats
  name: list_chats
  tool: TEAMS_LIST_CHATS
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input: []

- id: list_chat_messages
  name: list_chat_messages
  tool: TEAMS_LIST_CHAT_MESSAGES
  needs: ["list_chats"]
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: chat_id
      value: "{{steps.list_chats.result.chats[0].id}}"

- id: create_channel
  name: create_channel
  tool: TEAMS_CREATE_CHANNEL
  needs: ["list_teams"]
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: team_id
      value: "{{steps.list_teams.result.teams[0].id}}"
    - name: channel_name
      value: "project-alpha-2025"
    - name: description
      value: "Project Alpha 2025年度のチャネル"
    - name: is_private
      value: true

- id: add_channel_member
  name: add_channel_member
  tool: TEAMS_ADD_CHANNEL_MEMBER
  needs: ["create_channel"]
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: team_id
      value: "{{steps.list_teams.result.teams[0].id}}"
    - name: channel_id
      value: "{{steps.create_channel.result.channel_id}}"
    - name: user_id
      value: "alice@example.com"
    - name: role
      value: "member"

- id: send_message
  name: send_message
  tool: TEAMS_SEND_MESSAGE
  needs: ["add_channel_member"]
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: team_id
      value: "{{steps.list_teams.result.teams[0].id}}"
    - name: channel_id
      value: "{{steps.create_channel.result.channel_id}}"
    - name: message
      value: "Daily Report: Completed 15 tasks, 8 in progress"
    - name: message_type
      value: "text"
```

### 例：1 対 1 チャット作成と DM 送信

```yaml theme={null}
- id: create_chat
  name: create_chat
  tool: TEAMS_CREATE_CHAT
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: chat_type
      value: "oneOnOne"
    - name: member_ids
      value: "bob@example.com"

- id: send_chat_message
  name: send_chat_message
  tool: TEAMS_SEND_CHAT_MESSAGE
  needs: ["create_chat"]
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: chat_id
      value: "{{steps.create_chat.result.chat_id}}"
    - name: message
      value: "こんにちは！直接ご連絡させていただきます。"
    - name: message_type
      value: "text"
```

### 例：メッセージ検索とオンライン会議の取得

```yaml theme={null}
- id: search_messages
  name: search_messages
  tool: TEAMS_SEARCH_MESSAGES
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    - name: query
      value: "project alpha status"
    - name: from
      value: "2026-07-01T00:00:00+09:00"
    - name: to
      value: "2026-07-14T00:00:00+09:00"
    - name: size
      value: 25

- id: list_online_meetings
  name: list_online_meetings
  tool: TEAMS_LIST_ONLINE_MEETINGS
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    # start_datetime / end_datetime を指定すると、カレンダー期間から Teams 会議を抽出します
    - name: start_datetime
      value: "2026-07-14T00:00:00+09:00"
    - name: end_datetime
      value: "2026-07-21T00:00:00+09:00"
    - name: top
      value: 25

- id: get_online_meeting
  name: get_online_meeting
  tool: TEAMS_GET_ONLINE_MEETING
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_TEAMS.access_token}}"
  input:
    # meeting_id、join_web_url、video_teleconference_id のいずれかを指定します
    - name: join_web_url
      value: "https://teams.microsoft.com/l/meetup-join/..."
```
