本記事ではCData Microsoft Teams Drivers でチャットのメッセージを送受信する方法を紹介します。CData Microsoft Teams Drivers はMicrosoft Teams のグループやチャネル情報にアクセスしたり、チャネルにメッセージを送信したりすることができるドライバーです。今回お客様のご要望を受けて、新たにTeams のチャットにアクセスできる機能を追加しました。
Teams には他のユーザとプライベートなメッセージを交換するチャット機能があります。CData Microsoft Teams Drivers バージョン22 では、新たにチャットのメッセージを送受信する機能が追加されました。これにより、チャットに残したメッセージをファイルに書き出したり、ワークフローの通知をチャットに送信したりすることができます。
バージョン22 では以下のビューとストアドプロシージャが追加されました。
チャットのId や最終更新日時の一覧を取得します。
チャットのメッセージを取得します。
チャットにメッセージを送信します。
チャットId
メッセージの取得元や送信先チャットはチャットId で区別します。チャットId とはチャットが持つ固有のId で、チャットに参加しているユーザ数に関わらず1つのチャットには必ず1つのId が振られます。
チャットメッセージの取得や送信時には必ずチャットId を使って対象のチャットを指定します。チャットのId を取得する方法としては以下の2つがあります。
1. Teams 画面のURLから取得
Teams でチャット画面を開くとページのURL にチャットId が含まれていますので、これを利用します。
2. Chats ビューから取得
Chats ビューからチャットId を含むチャットのリストが取得できます。以下にChats ビューの使い方を示します。このビューを取得する際はWhere 句にユーザId を指定します。
select * from Chats where UserId = <ユーザID>
クエリ例
select Id, ChatType, LastUpdateDateTime from Chats where UserId = '3fdc1372-f7f3-4ebf-9d6f-986f32402046'
上記のクエリを実行すると以下の結果が取得できます。Id カラムの値がチャットId です。
チャットメッセージの取得
チャットメッセージの取得にはChatMessages ビューを使用します。このビューでは指定したチャットId のチャットメッセージのリストを取得できます。以下にChatMessages ビューの使い方を示します。このビューを取得する際はWhere 句にチャットId を指定します。
select * from ChatMessages where ChatId = <チャットId>
クエリ例
select Id, BodyContent, CreatedDateTime, FromUserDisplayName from ChatMessages where ChatId = '19:3fdc1372-f7f3-4ebf-9d6f-986f32402046_858a7845-a5e5-4a41-bc5b-bd51ec5d9dfa@unq.gbl.spaces'
上記のクエリを実行すると以下の結果が取得できます。
チャットの送信
パラメータ名 |
必須 |
説明 |
ChatId |
YES |
宛先のチャットId |
ContentType |
No |
メッセージの書式 ("text" か "html" のいずれかを指定。デフォルトは"text" ) |
Content |
Yes |
送信するメッセージ |
ContentType に"html" を指定するとメッセージをHTML 文章として読み取ります。これはメッセージを太字にしたりリンクを送信したりするときに利用します。SendChatMessage ストアドプロシージャの使い方を以下に示します。
exec SendChatMessage @ChatId = <チャットID> @ContentType = < メッセージの書式 (text / html) >, @Content = <メッセージ>
クエリ例
例1 : プレーンテキストのメッセージを送信
exec SendChatMessage
@ChatId = '19:3fdc1372-f7f3-4ebf-9d6f-986f32402046_79731b23-e5d5-4fdb-a6d1-ed3d07672cb3@unq.gbl.spaces',
@Content = 'こんにちは'
実行結果
例2 : HTML のメッセージを送信
exec SendChatMessage
@ChatId = '19:3fdc1372-f7f3-4ebf-9d6f-986f32402046_79731b23-e5d5-4fdb-a6d1-ed3d07672cb3@unq.gbl.spaces',
@ContentType = 'html',
@Content = 'こんにちは'
実行結果
おわりに
今回はCData Microsoft Teams Drivers でチャットのメッセージを送受信する方法を説明しました。ドライバーは他にもグループやチーム、チャネルの取得、作成、変更などが可能です。
CData Microsoft Teams Drivers は30日間無料でお使いいただけます。Microsoft Teams API との連携をご検討の方はぜひお試しください。
関連コンテンツ