GoogleChat의 REST API를 두드려 보겠습니다. 공간 정보를 가져 오는 편

지난번 로부터의 계속이야
전회는 공식을 그대로 카피해 Bot를 작성해, 사용해 보는 곳까지 했어.
이번에는 좀 더 다른 움직임을 시키기 위해, 우선은 REST API의 사용법을 배울게.

GoogleChat에는 어떤 API가 있습니까?



Chat에 준비된 REST API는 이런 느낌이야.

ぇぺぺrs. 오, ぇ. 코 m / Hango ts / Cha t / Reffensense / Rest

【REST API】
space.get 특정의 공간의 정보를 돌려줍니다.
space.list 봇이 추가된 공간을 반환합니다.
space.members.get 그 공간의 멤버를 돌려준다.
space.members.list 스페이스의 봇 이외의 멤버를 돌려준다.
space.messages.create 메시지를 만든다.
space.messages.delete 메시지를 삭제합니다.
space.messages.get 메시지를 받습니다.
space.messages.update 메시지를 갱신합니다.

이러한 API를 잘 다룰 수 있도록, 아래의 순서로 진행해 나갈 것입니다.

1. 서비스 계정 만들기
2. 프로젝트와 스크립트의 연결
3. 서비스 계정을 이용하여 인증하고 API를 두드린다
오늘은 space.get을 사용해 보겠습니다.

1. 서비스 계정 만들기



ぇぺぺrs. 오, ぇ. 코 m / 홍고 ts / 챠 t / 호 w와 s / 세 r

공식 문서를 좋아하기 때문에 1 단계의 단계에 따라 서비스 계정과 개인 키를 만들 수 있습니다.

GoogleCloudPlatform 에서 작업하겠습니다.
IAM 및 관리 > 서비스 계정에서 서비스 계정 만들기를 클릭합니다.


이름을 지정하고 만들기를 클릭합니다. 진짜는 제대로 명명하고 있어.


'이 서비스 계정에 프로젝트에 대한 액세스 허용'
'사용자가 이 서비스 계정에 액세스할 수 있도록 허용' 단계는 비워 둡니다.

키를 JSON 형식으로 만들겠습니다.


비밀키가 다운로드되기 때문에 소중히 보관하자.

2. 프로젝트와 스크립트의 연결



Google Apps Script 에서 작업하겠습니다.

대상 스크립트 파일을 열고 [파일] > [프로젝트 속성]의 스크립트 속성을 열어요.
[+행 추가]에서 이름과 값을 넣자. 값에는 조금 다운로드한 비밀키를 복사해 넣을거야.



그런 다음 CloudPlatform 프로젝트와 연결할 수 있습니다.
GoogleCloudPlatform 해당 프로젝트의 대시보드를 열고 프로젝트 번호를 복사합니다.


스크립트 파일의 [리소스] > [CloudPlatform 프로젝트...]를 열고 복사한 프로젝트 번호로 설정을 하자.


설정이 완료되면 이미지처럼 현재 관련되어 있는 프로젝트로 나올 거예요.
REST API를 사용할 준비가되었습니다

3. 서비스 계정을 이용하여 인증



서비스 계정으로의 인증은 라이브러리를 사용해 실시했어요.
아래의 기사가.

Google Apps Script에서 Service Account를 사용하여 인증 ~GAS를 사용하여 AppEngine 버전 목록 얻기~

* GSApp.init에서 에러가 나오고 우왕좌왕했습니다만, 「chromev8 탑재의 apps script 런타임」을 무효로 하면, 해소했습니다.
도서관에 호환되지 않는 부분이 있습니까? ·
지금이라면 더 좋은 라이브러리가있는 것일지도 모른다 · ·
라고, 제대로 조사할 수 없기 때문에, 다음의 숙제로 합니다.

코드는, 이런 느낌이야ー.

MyFunc


  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();

 // XXXXXには、調べたいスペースのリソース名がはいるよ。Chatを開いた時のURLのおしりについているよ。
 // XXXXXをつけないと、Botが参加している全てのスペース情報が戻るよ。(spaces.list)

  var url = "https://chat.googleapis.com/v1/spaces/XXXXXX"
   options = {
    "method" : "GET",
    "muteHttpExceptions": true,
    "headers": {
      'Authorization': 'Bearer ' +  tokens[jsonKey.client_email].token
     }
  };
  var res = UrlFetchApp.fetch(url,options);
  console.log(res);

이런 느낌의 반환 값이 있었어!
{
  "name": "spaces/XXXXXXXX",
  "type": "ROOM",
  "singleUserBotDm": false,
  "threaded": true,
  "displayName": "ルームの名前"
}

오늘은 여기까지 할게.
다음에는 POST에서 메시지를 보내도록 하겠습니다.

참고로 한 것



Google Apps Script에서 Service Account를 사용하여 인증 ~GAS를 사용하여 AppEngine 버전 목록 얻기~

Google Chat API
공식 씨, 전부 감사합니다. 사랑

좋은 웹페이지 즐겨찾기