Slack과 협력 한 Hubot에게 매일 아침 오늘의 일정을 알려줍니다.

현재 연구실 내에서 Slack을 사용하고 있어 모처럼이므로 Hubot을 도입하여 놀고 있다.
또한 연구실 내에서 예정된 공유를 위해 Google 캘린더에서 실험실 캘린더를 작성하여 운용하고 있다.

그러나, Google 캘린더에 복수의 캘린더를 표시하게 하면 보기 힘들거나, 원래 Google 캘린더를 확인하지 않는 등의 이유로 「오늘 미팅 있었는데?」등 예정을 파악할 수 없는 멤버가 발생한다.

그래서 Hubot에게 매일 아침 예정을 가르쳐 달라고 했다.

사용 이미지


  • 이미지를 위해 매일 아침 9:00에 Hubot (miku)가 오늘의 예정을 가르쳐 준다
  • 시간 설정이 있을 때
  • HH:MM:SS에 XXX

  • 없을 때
  • XXX

  • 이것들을\n 단락으로 연결한 문자열을 발언시키고 있다


  • hubot



    도입에 대해서는
  • ぃ tp // 코 m / 미소 페소 / ms / 1f418 d02 89234499b3
  • ぃ tp // 이 m / n0 비스케 / ms / 2448010c0d f8

  • 등의 기사를 참고했다.

    또한 forever를 사용하여 상주하고 있다.
    참고 : ぃ tp // 이 m / n_ 모리오카 / ms / 837967c0 2711198bd74

    Google Calendar API



    공식 : htps : // 이런. 로 ゔぇぺぺrs. 오, ぇ. 이 m/fぉws/에나 bぇ아피? Apii d = 가다 r

    자격 증명 얻기



  • htps : // 이런. 로 ゔぇぺぺrs. 오, ぇ. 이 m/s타 rt/아피? 아니 d =
    보다 응용 프로그램 등록
  • "새 클라이언트 ID 만들기"
  • 설치된 응용 프로그램 선택 → 서비스 이름 입력 → 기타 선택
  • 생성 후 JSON 다운로드


  • 다운로드한 JSON은 이런 느낌
    {"installed":{
        "auth_uri":"https://accounts.google.com/o/oauth2/auth",
        "client_secret":"YOUR CLIENT SECRET",
        "token_uri":"https://accounts.google.com/o/oauth2/token",
        "client_email":"",
        "redirect_uris":["urn:ietf:wg:oauth:2.0:oob",
        "oob"],
        "client_x509_cert_url":"",
        "client_id":"YOUR CLIENT ID",
        "auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"}}
    

    패키지 설치


    $ npm install googleapis --save
    $ npm install google-auth-library --save
    
  • 다음에 시간 지정 발언을 위해 cron, 시간대 지정을 위해 time도 있습니다.
    $ npm install cron time --save
    

    CoffeeScript



    출처 : htps : // 기 st. 기주 b. 이 m / tk3 ftk / 42966c00 예 예 bf164 예 4
  • 한 일
  • Google 공식 Node.js용 샘플을 CoffeeScript로 했다(그 이외는 인증 주위 거의 그대로).
  • JSON 파일에서 읽고 있던 자격 증명을 하드 코드했습니다 (.coffee만으로 완결하고 싶었기 때문에).
  • 기존 함수의 인수에 Hubot 발언용의 변수를 추가해, 캘린더로부터의 예정 취득과 함께 발언하게 했다.
  • moment.js를 사용하도록했습니다.

  • 처음 실행할 때만 사용하려는 캘린더가 있는 Google 계정으로 로그인하여 브라우저에서 인증하고 토큰을 생성해야 합니다.
  • 좋은 웹페이지 즐겨찾기