[ネタ]Google HomeとIFTTTで「会社休みます」とチャットワークに投稿

ifttt-absent

スポンサーリンク

こんにちは、いろんな効率化が大好きなたぬ(@KAivlys)です!

月曜日の襲来

日曜日の夜頃から来る月曜日が憂鬱で仕方ないといった人、結構いると思います!←

仕事は嫌いというかむしろ好きな部類なんですけど、なんでだろう、月曜日は気が乗らない。

仕方ないね、人間だもん。

ということで

やりたいこと
  • 布団から出なくてもGoogle Homeに「ねぇグーグル、会社休みたい」と喋りかけると、会社のチャットワークに丁寧な文言で書き込みする。

を実現させます。

ズル休みしたいとき 体調不良になったときに、ぜひ使ってください!

注意
当記事で得た不利益等は責任を負いかねません。ご利用の際は、自己責任でお願いします(笑)

全体の流れ

  1. Google Homeに「会社休みたい」と呼びかける
  2. IFTTT
  3. Googleスプレッドシートに書き込む
  4. Google Apps Script(GAS)
  5. チャットワークの連絡用グループに丁寧な書き込みをする
  6. おやすみなさい( ˘ ω ˘ )

何でこんな周りくどいことをしているのかというと、IFTTTがチャットワークに非対応だからです。

なのでGoogle Homeからスプレッドシートを操作し、GAS経由でチャットワークに投稿します。

IFTTTを作る前に準備するもの

  1. チャットワークAPIのキー
  2. 投稿したいグループチャットのルームID
  3. Googleスプレッドシートの作成
  4. Google Apps Scriptの作成

チャットワークAPIのキーを取得する

このAPIキーはとても大事なものなので、他の人に見られないようにしましょう。

  • フリープラン、パーソナルプランの場合
  • 自分でAPI設定ページから発行する。→ こちら

  • 組織契約の場合
  • 社内のチャットワーク管理者に依頼して発行してもらう。→ こちら

    投稿したいグループチャットのルームIDを取得する

    ブラウザ版のチャットワークで確認することができます。

    ルームID
    https://www.chatwork.com/#!rid✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕

    この赤文字の部分を控えていてくださいね。

    Googleスプレッドシートの作成

    A1セルに『日時』、B1セルに『内容』と記入されただけのスプレッドシートを用意して下さい。

    ifttt-absent1

    スプレッドシートの保存場所はどこでもいいですが、分かりやすいように『GAS』というフォルダ内に保存しておきましょう。

    スプレッドシートのディレクトリ
    GAS/スプレッドシートの名前

    Google Apps Scriptの作成

    ここだけ少し敷居高いですが、ほぼコピペでいけます。頑張ってください。

    STEP1:さっき作ったスプレッドシートを開く

    ifttt-absent1

    STEP2:ツール > スクリプトエディタを選択

    ifttt-absent2

    STEP3:チャットワークライブラリを登録する

    ifttt-absent5
    手順
    1. リソース
    2. ライブラリ

    ライブラリを登録することでスクリプトを簡単に記入することができます。ありがたい…。

    ifttt-absent6
    手順
    1. ライブラリを追加に『M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT』を入力
    2. 追加

    cw-shibuyaさんの作られたライブラリを使わせていただきます。

    ifttt-absent7
    手順
    1. バージョンを18に設定
    2. 保存

    現時点(2018年1月28日)での最新バージョンは18なので。

    

    STEP4:以下のコードをペーストする

    	
    var rid = ルームID;           //ルームID
    var token = 'チャットワークAPI'; //チャットワークAPI
    var today = new Date();
     
    function main() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var data = sheet.getDataRange().getValues();
      for(var i = 0; i < data.length; i++){
        if(data[i][0] === ''){
          sendMessage(data[i][1]);
          data[i][0] = today;
        }
      }
      
      sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
    }
     
    function sendMessage(body) {
      var client = ChatWorkClient.factory({token: token});
      client.sendMessage(
        {
          room_id: rid,
          body: body
        }
      );
    }
    
    ifttt-absent3

    どういうプログラムが簡単に説明すると、B列の最終行を確認して隣のA列が空白なら日付を入力しています。(IFTTTのCreatAtが何故か反応しないので)

    そのあとチャットワークにB列の内容を投稿します。

    STEP5:控えていたルームIDとチャットワークAPIを入力する

    ifttt-absent4

    STEP6:自動で動くようにトリガーを設定する

    ifttt-absent8
    手順
    1. 編集
    2. 現在のプロジェクトのトリガー
    ifttt-absent9

    迷わずクリック。

    ifttt-absent10
    手順
    1. main
    2. 分タイマー
    3. 1分ごと
    4. 保存

    お疲れ様です。これでIFTTTのアプレットを作る下準備が完成しました★

    IFTTTのアプレットを作成する

    ifttt-absent11

    IF(Googleアシスタント)

    app-googleassistant

    STEP1:Say a simple phrase

    ifttt-absent12
    1. GoogleHomeに話しかけるフレーズを入力
    2. 話しかけるフレーズ候補2
    3. 話しかけるフレーズ候補3
    4. GoogleHomeが喋る内容
    5. 言語設定:Japanese

    STEP2:Create trigger

    ifttt-absent13

    入力が完了したら『Create trigger』を選択

    THEN(Googleスプレッドシート)

    app-googlesheets

    STEP1:Add row to spreadsheet

    ifttt-absent14
    1. スプレッドシート名:一字一句間違い無いように入力
    2. セルに追加する内容:この部分がチャットワークに投稿される
    3. シートの場所:GASフォルダの中に作成したので『GAS/』

    STEP2:Create action

    ifttt-absent15

    入力が完了したら『Create action』を選択

    これでIFTTTのアプレットも完成です

    動作確認

    たぬ
    ねぇ、Google。会社休みたい
    Google Assistant
    チャットワークで連絡します
    ifttt-absent16

    IFTTTとも、ちゃんとつながってますね。

    ifttt-absent17

    ٩( ๑^ _^)۶

    きちんと動作確認できました。

    これで月曜日が来ても大丈夫だね〜!(何が)

    さいごに

    IFTTTでは直接チャットワークにアクセスできないので、Google Apps Scriptを使って無理矢理繋げました。

    月曜の朝体調不良になったときに使ってください!

    それでは〜。

    スポンサーリンク

    ifttt-absent

    ABOUTこの記事を書いてる人

    たぬ(谷口健太)

    25歳社会人。本職は福岡の通販会社でWebマーケッターやっとります。 プログラミング✕マーケティング=最強説を唱えており、非効率的な世の中に革命を起こそうと本ブログを設立。 ストレングスファインダー:戦略性・最上志向・目標志向・未来志向・個別化

    NEW POSTこのブログの最新記事