メインコンテンツへスキップ

概要

Microsoft Teams ツールでは、チーム・チャネル・チャット・チャネルメッセージ・チャットメッセージの取得、チーム・プライベート/共有チャネル・グループチャットへのメンバー追加、チャネルへのメッセージ送信、スレッド返信、チャネルの作成を Microsoft Graph 経由で行えます。

主な機能

  • TEAMS_LIST_TEAMS
    • ユーザーが参加している Teams の一覧を取得。
  • TEAMS_LIST_CHANNELS
    • チーム内のチャネル一覧を取得。
  • TEAMS_LIST_CHANNEL_MESSAGES
    • チャネルに投稿されたメッセージを取得。スレッド返信も含めて取得できます。
  • TEAMS_LIST_CHATS
    • サインイン中のユーザーが参加しているチャット一覧を取得。
  • TEAMS_LIST_CHAT_MESSAGES
    • 1 対 1 またはグループチャットに投稿されたメッセージを取得。
  • 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
    • チーム内に新しいチャネルを作成(公開/非公開)。

認証

Microsoft Graph OAuth トークンが必要です。 Jinba のシークレット設定 で Microsoft アカウント(Teams)を連携し、発行されたトークンをツールの config に指定してください。 Teams OAuth 接続では、チャネルメッセージ、チャットメッセージ、チャネル、チャネルメンバー、チームメンバー、チャットメンバー、チーム、メッセージ送信、トークン更新に必要な Microsoft Graph scope を要求します。これらの scope 追加前に作成済みの Teams シークレットは、再連携が必要です。チームメンバー追加(TeamMember.ReadWrite.All)やチャットメンバー追加(ChatMember.ReadWrite)は、テナントによっては管理者同意が必要です。

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

- 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"