Chatwork Webhook과 무료로 취급할 수 있는 GAS를 사용해 Bot을 만들어 보자.

여기에도 같은 내용의 기사를 썼습니다.
htps //w w. pnks. 네 t / 2020 / 04 / 26 / 짱과 rk-u-b hoo k-s-bo t

3일 전의 11월 1일에, 드디어 채팅 워크로 Webhook를 사용할 수 있게 되었습니다!
h tp : // b ぉ g ー. 제대로 rk. 코 m/2017/11/아피오펜베타. HTML
그래서 서버 비용이 전혀 걸리지 않는 Google Apps Script (GAS)를 사용하여 Chatwork Webhook을 사용해 보았습니다.

GAS는 무료로 쉽게 웹페이지를 만들거나 API 서버를 만들 수 있으므로 개인적으로 자주 사용합니다.

채팅 작업의 API 관리 화면은 여기에서 액세스할 수 있습니다.
htps //w w. 제대로 rk. 이 m/세 rゔぃせ/ぱcかげs/챠토ぉrk/す bぱcかげs/우ぇb호오 k/ぃst. php


서버 준비(GAS 측에 스크립트 입력)



시작하기 GAS에서 새 프로젝트 만들기
※Google 드라이브를 열어 새롭게 작성하면 된다. 이번에는 자세한 것은 이 기사에서는 쓰지 않는다.

이번에 작성한 프로그램은 앵무새를 돌려주는 간단한 봇입니다.
var spreadsheetId = '***********';
var chatworkToken = '***********';
var myAccountId = '***********'

function doPost(e) {
  try {
    var json = JSON.parse(e.postData.contents);
    SpreadsheetApp.openById(spreadsheetId).getSheetByName('log').getRange(1, 1).setValue(json.toSource());

    var accountId = json.webhook_event.account_id;
    if (accountId == myAccountId) {
      return;
    }

    var message = json.webhook_event.body;
    var roomId = json.webhook_event.room_id;
    postChatwork(roomId, message);

  } catch(ex) {
    SpreadsheetApp.openById(spreadsheetId).getSheetByName('log').getRange(1, 1).setValue('error');
  }
}

function postChatwork (roomId, message) {
  var payload = {
    "body" : message
  };

  var headers = {
    "X-ChatWorkToken": chatworkToken
  };

  var options = {
    "method" : "post",
    "payload" : payload,
    "headers" : headers
  };

  return UrlFetchApp.fetch("https://api.chatwork.com/v2/rooms/" + roomId + "/messages", options);
}

이 스크립트에서 ***********가 되어 있는 곳이 3개소 있으므로, 그 쪽은 사람에 따라서 다르므로 수정할 필요가 있다.

spreadsheetId
이곳은 로그를 출력하기 위해 스프레드 시트를 사용하고 있습니다. 해당 스프레드 시트의 ID를 여기에 입력합니다.
log라는 시트를 지정해 출력하고 있으므로, 빈 스프레드 시트의 프로젝트를 작성해, log 라고 하는 시트를 작성할 필요가 있다.

chatworkToken
앵무새 반환을 할 때 게시할 때 필요합니다.
사용 중인 채팅워크 계정의 토큰을 여기에 입력합니다.

myAccountId
자신의 채팅 작업 계정 ID를 여기에 입력합니다.
앵무새 반환으로 투고한 내용도 webhook에서 날아 버려, 앵무새 반환의 앵무새 반환을 투고하여 무한 루프가 되어 버리는 것을 막기 위해.
확인하는 방법은, 자신에게 받는 To의 [To:*****]의*****에 해당하는 것이 된다.

서버 게시 (GAS 게시 설정)



프로그램이 완성되면 외부에서 두드리는 용으로 공개할 필요가 있다.
GAS 위의 메뉴에서 "공개"→ "웹 애플리케이션으로 도입 ..."을 선택

아래의 항목은 실수하기 쉽기 때문에 조심합시다.


품목
내용


다음 사용자로 애플리케이션 실행
자신 (****@gmail.com)

애플리케이션에 액세스할 수 있는 사용자
모두(익명 사용자 포함)


이제 공개를 한다.
게시가 완료되면 URL이 표시되므로 복사

https://script.google.com/macros/s/******************/exec

채팅 워크의 Webhook 설정



채팅 작업 관리 화면에 로그인
↓아마 이쪽의 URL로 갈 수 있을 것
htps //w w. 제대로 rk. 이 m/세 rゔぃせ/ぱcかげs/챠토ぉrk/す bぱcかげs/우ぇb호오 k/ぃst. php

Webhook 탭을 선택하고 새로 만들기 버튼을 클릭합니다.


품목
내용


Webhook 이름
알기 쉽게 이름을 붙여준다. 뭐든지 괜찮아

Webhook URL
GAS를 게시할 때 표시되는 URL을 여기에 입력합니다.

이벤트
이번은 ルームイベント를 선택해 본다.

메시지 작성
룸 이벤트를 선택하면 표시되는 항목. 체크를 둔다

메시지 업데이트
룸 이벤트를 선택하면 표시되는 항목. 체크를 둔다

룸 ID
룸 이벤트를 선택하면 표시되는 항목. Bot 방 URL https://www.chatwork.com/#!rid********** 조각


이제 작성 버튼을 눌러 준다.

사이고에게



이것으로 완성이므로, 텍토에 입력해 주었으면 한다.
에러가 되지 않으면 앵무새 반환을 해줄 것입니다.
스프레드시트에도 로그가 제대로 토해질 것입니다.

이제 무료로 채팅 워크의 Webhook이 쉽게 처리 할 수있었습니다!

좋은 웹페이지 즐겨찾기