Teams 그룹 채팅에 bot를 통해 알림

7527 단어 C#

처음에



2021/02월 현재 Power Automate에서는 채팅 그룹으로 메시지를 보내는 작업이 없습니다.
아무래도 채팅 그룹에 자동 송신형의 통지를 할 필요가 있는 경우에, 이 방법을 사용하면 bot에 말을 걸도록 하는 형태로 메시지를 송신할 수 있었습니다.

환경


  • Microsoft Teams 계정
  • c#

  • 절차



    App Studio에서 알림용 앱 만들기


  • 왼쪽 하단의 앱 버튼에서 Teams에 App Studio를 설치합니다.
  • Manifest Editor(위의 탭)를 선택하고 왼쪽의 Create New App 버튼을 누릅니다.
  • *가 붙은 필수 입력 항목을 입력합니다(App ID는 Generate 버튼을 누르면 생성됩니다).
  • 왼쪽의 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 Language를 눌러 Select a language에서 언어를 선택합니다.
  • 왼쪽의 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를 아래의 소스에 대입해 실행하면 그룹 채팅에의 메시지의 송신이 가능합니다.

    Program.cs
    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);
            }
        }
    }
    

    좋은 웹페이지 즐겨찾기