Ruby on Rails 및 REST API를 사용하여 Microsoft Teams 봇 만들기

6152 단어 botrubyrailsmsteams
이 자습서에서는 Microsoft Azure를 사용하여 봇을 구축하고 Microsoft Teams에서 이를 사용하여 Ruby on Rails 애플리케이션과 상호 작용할 것입니다. 현재 Microsoft Bot Framework는 Node js 및 C#용 SDK 키트를 지원합니다. REST API를 사용하여 봇과 상호 작용하고 작업을 수행합니다.

먼저 Azure 플랫폼에서 새 앱을 만드는 것부터 시작하겠습니다.

Azure 플랫폼에서 앱 만들기


  • Azure 포털에 로그인합니다.
  • 앱을 만들려면 Azure Active Directory -> 앱 등록 -> 새 등록으로 이동합니다.


  • 개요 섹션에서 앱 ID를 기록해 둡니다.


  • Certificated & secrets -> New Client secret으로 이동하여 이름을 지정하고 만료를 Never로 설정한 다음 Add를 클릭합니다.


  • 다시 볼 수 없으므로 생성된 비밀 ID를 기록해 두십시오.

  • 그래서 우리는 봇 서비스를 만들 앱을 만들었습니다.

    봇 서비스 생성



  • Azure Portal의 왼쪽 위 모서리에서 새 리소스 만들기 링크를 클릭한 다음 AI + Machine Learning > 웹앱 봇을 선택합니다.


  • 열리는 양식을 작성하십시오. Microsoft 앱 ID 및 암호 섹션에서 앱 ID와 클라이언트 암호를 암호로 제공합니다.
  • 봇을 생성한 후 설정에서 메시징 엔드포인트를 Ruby on Rails API 엔드포인트로 설정합니다.
  • OAuth 연결 설정을 생성하고 양식을 작성합니다.
  • 승인 URL: https://login.microsoftonline.com/botframework.com/oauth2/v2.0/authorize
  • 토큰 URL: https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token
  • 새로 고침 URL: < 리디렉션 URI >

  • 범위: < 필수 범위 >



  • 이 OAuth 설정은 봇이 MS Teams에서 작동하는 데 필요합니다.
  • 테스트 웹 채팅에서 봇을 테스트합니다.




  • REST API



    이제 봇과 앱이 Azure 플랫폼에 설정되었으므로 작업할 준비가 되었습니다.

    사용자 인증

    사용자가 앱을 인증하기 위해서는 사용자가 로그인한 후 아래 링크로 앱을 인증해야 합니다.

    https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=YOUR_CLIENT_ID&scope=YOUR_SCOPE&redirect_uri=YOUR_REDIRECT_URI&response_type=code

    봇 액세스 토큰

    봇과 상호 작용하기 위해 액세스 토큰을 요청하려면 아래 요청을 사용하십시오. 응답 토큰은 Bearer 토큰입니다.

    POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token
    Host: login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials&client_id=MICROSOFT-APP-ID&client_secret=MICROSOFT-APP-PASSWORD&scope=https://api.botframework.com/.default
    

    응답:

    {
    "token_type":"Bearer",
    "expires_in":3600,
    "ext_expires_in":3600,
    "access_token":"esadjnaskdnnaHs..."
    }
    

    대화 만들기

    토큰을 받은 후 사용자와 대화를 만들 수 있습니다. 대화를 설정하려면 다음 요청을 사용하여 대화 ID를 가져오십시오.

    POST < Service URL >/v3/conversations (https://smba.trafficmanager.net/in for  teams)
    {
     "bot": {
       "id": "YOUR_BOT_ID",
       "name": "YOUR_BOT_NAME"
     },
     "members": [
       {
         "id": "USER_ID"
       }
     ],
     "channelData": {
       "tenant": {
         "id": "USERS_TENANT_ID"
       }
     }
    }
    

    응답:

    {  
    "id":"a:1sdadaa.."
    }
    

    대화를 받은 후 활동에 POST 요청을 하여 아래와 같이 메시지를 보냅니다.

    POST < Service URL>/v3/conversatoins/< Conversation id >/activities
    {
     "bot": {
       "id": "YOUR_BOT_ID",
       "name": "YOUR_BOT_NAME"
     },
     "members": [
       {
         "id": "USER_ID"
       }
     ],
     "channelData": {
       "tenant": {
         "id": "USERS_TENANT_ID"
       }
     }
    }
    

    대화에 회신:

    다음 요청으로 대화에 회신하려면 초기 메시지의 매개 변수에서 사용자 ID, 봇 이름 및 사용자를 가져옵니다.

    POST <ServiceURL>/v3 /conversations/{conversationId}/activities/{activityId}
    Authorization Bearer "eysdsda.." 
    {
            "type": "message",
            "from": {"id": "< BOT_USER_ID>", "name": "<BOT_USER_NAME>"},
            "conversation": {"id": "IlbyD8hQi5aGqAAz3qXfVp-5"},
            "recipient": {"id": "<Receiver_user_id", "name": "<Receiver_user_name>"},
            "text": "This is a reply message."
    }
    

    메시지 업데이트:

    이미 보낸 메시지를 업데이트하려면 다음과 같이 요청하십시오. 초기 메시지 매개변수에서 replytoID를 얻을 수 있습니다.

    PUT <ServiceURL>/v3 /conversations/{ReplytoID}
    Authorization Bearer "eysdsda.."
    {
    "type": "message",
    "text": "This message has been updated"
    }

    Teams에서 봇 테스트:



    팀에서 봇을 테스트하려면 봇 서비스 만들기 섹션에 설명된 대로 Oauth 연결을 추가해야 합니다. 그런 다음 봇 앱 ID를 복사하고 해당 ID로 팀에서 새 대화를 시작할 수 있습니다. 이제 Teams에서 봇을 확인할 준비가 모두 완료되었습니다.


    여기 있는 사람들은 기본 봇을 쉽게 만들고 ROR 응용 프로그램과 상호 작용할 수 있는 방법입니다. 질문이 있으시면 아래 의견에 남겨주십시오.

    좋은 웹페이지 즐겨찾기