Teamsのグループチャットにbot経由で通知をする
初めに
2021/02月現在、Power Automateではチャットグループ宛にメッセージを送信するアクションがありません。
どうしても、チャットグループに自動送信型の通知を行う必要がある場合に、この方法を使えばbotにしゃべらせるという形でメッセージを送信することができました。
環境
- Microsoft Teamsアカウント
- c#
手順
App Studioで通知用アプリを作成
- 左下のアプリボタンからTeamsにApp Studioをインストールします。
- Manifest Editor(上のタブ)を選択して、左側の Create New App ボタンを押します。
左側の 2.Capabilities の bots を押してbotのセットアップ画面を表示させたらSet up ボタンを押します。
Set up a bot画面が表示されるので、名前を入力、必要なScopeにチェック(3つチェックしてOK)して、 Create Bot ボタンを押すとBotの作成が完了した画面が表示されますので、 botのID を控えて下さい(この値は後からでもコピペできます)。ここで作成したbotはMicrosoft Bot Frameworkで確認できます。
Generate New Password ボタンを押して botのパスワード を生成し、ここでコピペしてどこかに保存して下さい。生成した時にしかパスワードはコピーできません。
左側の 3.Finish の Test and Distribute を押して Download ボタンを押します(ダウンロードされたzipファイルは後で使います)。
左側の 3.Finish の Test and Distribute を押して Install ボタンを押します。アプリのインストール画面が表示されたら、 追加 ボタンを押します。
Teamsでアプリの画面が開いたら完了です。
グループチャットを作成する。
App Studioで通知用アプリを作成
- 左下のアプリボタンからTeamsにApp Studioをインストールします。
- Manifest Editor(上のタブ)を選択して、左側の Create New App ボタンを押します。
左側の 2.Capabilities の bots を押してbotのセットアップ画面を表示させたらSet up ボタンを押します。
Set up a bot画面が表示されるので、名前を入力、必要なScopeにチェック(3つチェックしてOK)して、 Create Bot ボタンを押すとBotの作成が完了した画面が表示されますので、 botのID を控えて下さい(この値は後からでもコピペできます)。ここで作成したbotはMicrosoft Bot Frameworkで確認できます。
Generate New Password ボタンを押して botのパスワード を生成し、ここでコピペしてどこかに保存して下さい。生成した時にしかパスワードはコピーできません。
左側の 3.Finish の Test and Distribute を押して Download ボタンを押します(ダウンロードされたzipファイルは後で使います)。
左側の 3.Finish の Test and Distribute を押して Install ボタンを押します。アプリのインストール画面が表示されたら、 追加 ボタンを押します。
Teamsでアプリの画面が開いたら完了です。
グループチャットを作成する。
ここでメッセージ送信に必要なConversationIDの取得とアプリのインストールを行います。
- Teamsで3人以上のグループチャットを作成します。
- 適当なメッセージを送信し、グループチャットに名前をつけます。
- 左側のチャット一覧ペインで該当するグループチャット名横の[…]→ アプリを管理 を押します。
カスタムアプリをアップロード を押し、 App Studioで通知用アプリを作成 で作成したzipファイルを選択します。
アプリのインストール画面が表示されたら、 追加 ボタンを押します。
Graph API経由
/me/chats
でConversationID(会話ID)を取得します(2.でつけた名前がtopic値になっているもののidが ConversationID です)。
コンソールアプリケーションでメッセージを送信する。
取得したbotのID・botのパスワード・ConversationIDを下記のソースに代入して実行するとグループチャットへのメッセージの送信が可能です。
using System;
using System.Collections.Generic;
using Microsoft.Bot.Connector;
using Microsoft.Bot.Connector.Authentication;
using Microsoft.Bot.Schema;
namespace ProactiveMessagerSample
{
class Program
{
static void Main(string[] args)
{
var appId = "<botのID>";//App Studio画面で取得したbotのID
var appPassword = "<botのパスワード>";//App Studio画面で保存したbotのパスワード
var serviceUrl = "https://smba.trafficmanager.net/jp/";
var conversationId = "<ConversationID>";//API経由で取得したConversationID
MicrosoftAppCredentials.TrustServiceUrl(serviceUrl);
var connector = new ConnectorClient(new Uri(serviceUrl), appId, appPassword);
IMessageActivity message = Activity.CreateMessageActivity();
message.Conversation = new ConversationAccount(id: conversationId);
message.Locale = "ja-jp";
message.Text = $@"Chatbotからの通知テストです。";
connector.Conversations.SendToConversation((Activity)message);
}
}
}
Author And Source
この問題について(Teamsのグループチャットにbot経由で通知をする), 我々は、より多くの情報をここで見つけました https://qiita.com/nomori/items/d8010380fbb0b124ce72著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .