라이브러리를 사용하지 않고 gas만으로 만드는 앵무새 반환 slack bot 만드는 법

Outgoing Webhooks 는 추천하지 않는다고 slack씨가 말씀하시기 때문에, 일단 앵무새 돌려주는 bot를 만들었으므로 공유합니다.

아래 코드는 특정 채널의 봇에 대한 멘션에 대해 앵무새를 반환합니다.
아래의 코드 중의 채널 ID, 봇 유저 ID는 자신의 환경에서 로그를 넣어 조사해 주셔서 다시 써 주시면 좋겠습니다.

만드는 법


  • 스프레드 시트에서 ツール>スクリプトエディタ를 선택하여 편집기를 열고 아래 코드를 복사
  • function doPost(e) {
      var postData = JSON.parse(e.postData.getDataAsString());
    
      // Event Subscriptionsに必要な部分
      if(postData.type == 'url_verification') {
        return ContentService.createTextOutput(postData.challenge);
      } else if (
          postData.event.channel == 'チャンネルID' // 指定のチャンネルだけを観測する
          && postData.authed_users[0] != 'ボットユーザID' // botが発言者の場合には反応しない
          && postData.event.text.indexOf('ボットユーザID') != -1 // botが呼ばれた時だけ反応する
          ) {
        return reply(postData);
      }
    
      return 0;
    }
    
    function reply(postData){
      // Incoming WebhooksのURL
      var slackUrl = 'Incoming WebhooksのURL';
      // botへのメンションを全て消す
      var text = postData.event.text.replace(/<@ボットユーザID>/g, '').trim();
      // おうむ返しするテキストを用意する
      var messageData = {
        'text': '<@' + postData.event.user + '> ' + text
      };
    
      var options = {
        'method'  : 'POST',
        'headers' : {'Content-type': 'application/json'},
        'payload' : JSON.stringify(messageData)
      };
    
      return UrlFetchApp.fetch(slackUrl, options); 
    }
    
  • 公開>ウェブアプリケーションとして導入를 선택하면 아래와 같은 이미지가 나타납니다.
  • 프로젝트 버전을 new로 하고, 사용자가 익명으로 실행자로 액세스할 수 있도록 선택하고 업데이트를 클릭합니다.
  • 앞으로 코드를 수정할 때마다 new로 업데이트하는 것이 좋다고 생각합니다 (어쨌든 잘 이해하지 못함)

  • 업데이트되어 나온 URL은 slack api로 사용하므로 복사해 둔다



  • slack bot 설정



  • htps : // 아피. scck. 코m/ 에 액세스하여 bot를 흐르게 만들기
  • 이벤트 Subscriptions의 요청 URL에 이전에 스프레드 시트로 복사 한 URL을 붙여 넣습니다 (아마도 녹색 체크 표시가 붙을 것)


  • Subscribe to Workspace Events와 Subscribe to Bot Events의 설정은 아래 그림과 같이 설정한다



  • (나는 이것으로 할 수 있었다)

    로그에 대한 참고 자료


  • htps : // 이 m/호 wdy39/있어 ms/398f4969639 아 558c8487
  • 좋은 웹페이지 즐겨찾기