GoogleChat의 REST API를 두드려 보겠습니다. 메시지를 보내는 편

안녕하세요, 4 연휴입니다
이 4일간에 얼마나 Bot이 귀여워지는지 기대해. 열심히!

지난번 는 GoogleChat의 spaces.get를 두드려 결과를 얻는 곳까지 진행했다.
이번에는 spaces.messages.create에서 메시지를 보내도록 하겠습니다.

spaces.messages.create에 대해 배우자.



우선은, 파라미터와 리퀘스트 바디를 봐 보자.

HTTP 요청은 이런 느낌.
XXXXX는 스페이스의 코드가 들어갈거야. (Chat을 브라우저로 보았을 때의 URL의 엉덩이가 그렇게.)
https://chat.googleapis.com/v1/XXXXXXX/messages

요청 본문은 Message 형식으로, 이전에 onMessage(event) 함수를 실행했을 때에 취득할 수 있었던, event.message 와 같습니다.
다만, 이쪽으로 설정할 수 있는 개소는 한정되어 오는 것 같았어.
그 주변은 시험하면서 확인합시다.

자세한 것은 공식을 체크해 주세요.
ぇぺぺrs. 오, ぇ. 코 m / 은어 ts / 챠 t / 레후 렌세 / 레 st / v1 / s 파세 s. 메시게 s #메시게

spaces.messages.create로 메시지 보내기



/**↓ここは前回と同じだよ**/

  var jsonKey = JSON.parse(PropertiesService.getScriptProperties().getProperty("jsonKey"));

  // GoogleChatの認証をせってい。
  var serverToken = new GSApp.init(jsonKey.private_key, ["https://www.googleapis.com/auth/chat.bot"], jsonKey.client_email);

  //トークンを取得するユーザを設定して、トークンを取得
  var tokens = serverToken.addUser(jsonKey.client_email).requestToken().getTokens();

/**↑ここは前回と同じだよ**/


 //プレーンテキストメッセージとして送るよ。
  var message ={"text" :"ここに入れた言葉が送られるよ"};

  // XXXXXXXはメッセージを送りたいスペースのリソース名だよ。
  var url = "https://chat.googleapis.com/v1/spaces/XXXXXXX/messages/";

  options = {
   "method"  : "Post", // 前回はGetだったけれど今回はPOSTで送るよ。
   "payload" :JSON.stringify(message), 
   "muteHttpExceptions": true,
   "headers": {
      "Authorization": 'Bearer ' +  tokens[jsonKey.client_email].token,
      "Content-Type" : 'application/json; charset=UTF-8' //おっちょこちょいだからこれを忘れて、最初動かなかったよ。
    }
  }
  var res = UrlFetchApp.fetch(url,options);

  console.log(res;

이것으로 실행하면, 네-응!



와, 봇이 말했어. 귀엽다.

조금 더 밟고 스레드를 통합합시다.



이런 귀여운 Bot이지만, 몇 번이나 보내고 있으면 스레드가 난립해.
조금 까다 롭습니다.



반환 값을 보면 보낸 메시지의 정보가 타고 있어요.
그 안에 쓰레드의 자원명이 있기 때문에, 그것을 사용해 같은 thread에 보내 보자.



수정점은 이런 느낌이야.
thread에 정보를 갖게 해.
  var message ={
    "text" : text,
    "thread": {
      "name": XXXXX //オレンジで囲った一文をまるまるコピーするよ
    }
  };

네.



좋은 느낌이군요.

onMessage()와 결합해 보자.



이전에 했던 onMessage와 결합하여 획득한 메시지를 다른 채팅방으로 전달해 봅시다.
function onMessage(event) {

  var name = name = event.user.displayName;
  var message = name + " said \"" + event.message.text + "\"";
  var spaceId = "XXXXXX";

  /**上記メッセージ送信部分を関数にしているよ。やっていることは丸々いっしょだよ。**/
  sendMessage(message,spaceId,"");


  return { "text": "Forwarded the message (" + message + ")" };
}

DM

목적지 룸


좋은 느낌이군요.
오늘은 여기까지! 다음 번은 더 BOT를 현명하게 할게!

참고로 한 것



GoogleChatAPI
여러 번 말해, 공식 씨 감사합니다

좋은 웹페이지 즐겨찾기