CData ドライバーを使用して Microsoft Teams チャネルにメッセージを送信する



CData Microsoft Teams ドライバーは、Teams との連携をシンプルに実現します。複雑なコーディングなしで、アプリケーションからメッセージを送信したりデータにアクセスしたりできます。これらのドライバーは Java や .NET アプリケーションから Teams API を操作でき、JDBC、ODBC、ADO.NET データソースに対応するあらゆるアプリケーションで利用可能です。

この記事では、Microsoft Teams ドライバーを使用して指定したチャネルにメッセージを送信する方法をご紹介します。ドライバーを組み込むだけで、Teams データへのアクセスと統合がいかに簡単に実現できるかをご覧ください。

前提条件

始める前に、以下の準備が整っていることを確認してください:

  • Microsoft Teams が有効になっている Microsoft 365 アカウント
  • Microsoft Teams 内の既存のチームチャネル(それぞれの ID も必要)
  • CData Microsoft Teams ドライバーのインストール(ODBC / JDBC / ADO.NET)
  • ドライバーをまだインストールしていない場合は、30日間の無料トライアルをご利用ください
  • ODBC/JDBC/ADO.NET 経由で接続できるクライアントツール/アプリ(Excel、Access、Java/.NET アプリなど)
  • 送信先チャネルにメッセージを投稿するための権限

基本的な使い方

CData Microsoft Teams ドライバーは、Teams API へのアクセスを SQL に置き換えるインターフェースを提供します。たとえば、チャネルを取得する API への GET リクエストは、以下のように Channels テーブルへの SELECT 文で実行できます:

select * from Channels;

その他の接続方法やサポートされているテーブルについては、ドライバーヘルプをご参照ください。

ドライバーを使用してメッセージを送信する方法

ドライバーでメッセージを送信するには、SendMessage ストアドプロシージャを使用します。たとえば、指定したチャネルに「hello」というメッセージを送信する場合、以下のストアドプロシージャを実行します:

exec SendMessage
     @Content = 'Hello', -- 送信するメッセージ
     @TeamId = 477a1356-b063-4320-9dab-fe5e735ea9c7, -- 送信先チャネルが属するチーム ID
     @ChannelId = 19%3AUAh0DUCZ8toRLSyseURO_E7zjkUf1NJQ1knIdc7cytE1%40thread.tacv2 -- 送信先チャネル ID

実行結果

SendMessage ストアドプロシージャを実行するには、メッセージの送信先となるチーム ID とチャネル ID が必要です。以下では、Teams 画面やドライバーからアクセスできるデータからチーム ID とチャネル ID を取得する方法をご紹介します。

チーム ID とチャネル ID の取得方法

Teams 画面のリンクから取得する

チャネルのメニューから「チャネルへのリンクをコピー」をクリックします。

ここで表示されるリンク文字列には、チーム ID とチャネル ID が含まれています。

リンク文字列のうち、channel/ に続く文字列がチャネル ID、groupId= に続く文字列がチーム ID です。

注意: チャネル ID には : や @ の記号が含まれているため、リンク内では URL エンコードされています。

データから取得する

ドライバーを使用する場合、Teams テーブルからチームの一覧を、Channels テーブルからチャネルの一覧を取得できます。たとえば、以下の SQL を実行すると、チーム名、チーム ID、チャネル名、チャネル ID の一覧を取得できます。

select teams.displayName as teamName, channels.displayName as channelName, teams.id as teamId, channels.id as channelId from channels join teams on channels.teamId = teams.id;

実行結果

SendMessage の実行例

以下に SendMessage ストアドプロシージャの実行例をご紹介します。

テキストメッセージを送信する

シンプルなテキストメッセージを送信する SQL は以下のとおりです。送信するメッセージと、送信先のチーム ID およびチャネル ID を指定します。

exec SendMessage
     @Content = <メッセージ>,
     @TeamId = <チーム ID>,
     @ChannelId = <チャネル ID>;

exec SendMessage
     @Content = 'Hello',
     @TeamId = '477a1356-b063-4320-9dab-fe5e735ea9c7',
     @ChannelId = '19:[email protected]';

実行結果

HTML メッセージを送信する

HTML 形式でメッセージを送信するには、@ContentType パラメータを追加して html を設定します。

exec SendMessage
     @Content = <メッセージ>,
     @ContentType = 'html',
     @TeamId = <チーム ID>,
     @ChannelId = <チャネル ID>;

exec SendMessage
     @Content = '<h2><span style="color:blue;">Hello</span></h2>',
     @ContentType = 'html',
     @TeamId = '477a1356-b063-4320-9dab-fe5e735ea9c7',
     @ChannelId = '19:[email protected]';

実行結果

重要度の高いメッセージを送信する

メッセージの重要度を指定するには、@Importance パラメータを追加し、重要度に応じて high または urgent を設定します。

exec SendMessage
     @Content = <メッセージ>,
     @Importance = <重要度>,
     @TeamId = <チーム ID>,
     @ChannelId = <チャネル ID>;

exec SendMessage
     @Content = 'Hello',
     @Importance = 'urgent',
     @TeamId = '477a1356-b063-4320-9dab-fe5e735ea9c7',
     @ChannelId = '19:[email protected]';

実行結果

ユーザーにメンションする

ユーザーにメンションするには、メッセージ内でメンションを示すメンションテキストと、メンション先のユーザー ID の2つの値を指定します。ユーザー ID の取得方法については、この章の最後で説明します。

ユーザーにメンションする場合、@Mention パラメータを追加し、メンションテキストとユーザー ID をカンマで区切って指定します。ContentTypehtml に設定してください。

EXECUTE SendMessage
  Content = <メッセージ>,
  ContentType = 'html',
  TeamId = <チーム ID>,
  ChannelId = <チャネル ID>,
  Mention = <メンションテキスト,ユーザー ID>;

EXECUTE SendMessage
  Content = ' Hello',
  ContentType = 'html',
  TeamId = '477a1356-b063-4320-9dab-fe5e735ea9c7',
  ChannelId = '19:[email protected]',
  Mention = 'Somya Sharma,819d298e-ffef-4616-a8ee-8ecb082fa5a2';

実行結果

複数のユーザーにメンションする場合は、メンションテキストとユーザー ID のセットをセミコロンで区切ります。

Execute SendMessage
 Content = <メッセージ>,
 ContentType = 'html'
 TeamId = <チーム ID>,
 ChannelId = <チャネル ID>;
 Mention = <メンションテキスト1,ユーザー1 ID>;<メンションテキスト2,ユーザー2 ID>;...

Execute SendMessage
 Content = 'Hello',
 ContentType = 'html'
 TeamId = '477a1356-b063-4320-9dab-fe5e735ea9c7',
 ChannelId = '19:[email protected]',
 Mention = 'Somya Sharma,819d298e-ffef-4616-a8ee-8ecb082fa5b4;Anusha MB,bbeca2a4-21f4-4b7e-9e58-b77eb64c13e8';

実行結果

ユーザー ID の取得方法

メンションに必要なユーザー ID を取得する方法をご紹介します。

Microsoft 365 管理センターから取得する

Microsoft 365 管理者アカウントで Microsoft 365 管理センターにアクセスし、メニューの「ユーザー」から「アクティブなユーザー」を開きます。「ユーザーのエクスポート」をクリックすると、ユーザー ID を含むユーザー情報の一覧をダウンロードできます。

データから取得する

ドライバーからユーザー ID を取得するには、Users テーブルにアクセスします。以下の SQL でユーザー名、メールアドレス、ID の一覧を取得できます。

select displayName, mail, id from Users;

CData で Microsoft Teams との接続をシンプルに

この記事では、CData Microsoft Teams ドライバーSendMessage ストアドプロシージャを使用して、指定したチャネルにメッセージを送信する方法をご紹介しました。メッセージの投稿だけでなく、グループ、チーム、チャネルの取得、作成、変更も、標準的な ODBC、JDBC、ADO.NET 接続を通じて行えます。

CData を使えば、Teams API へのリアルタイム接続で、アプリケーションやワークフローへの Microsoft Teams 統合がシンプルに実現できます。ぜひ CData Microsoft Teams ドライバーの 30日間無料トライアルをお試しください。ご不明な点がございましたら、サポートチームまでお気軽にお問い合わせください。