🐴

Workato:Workato(だけじゃないかもだけど)すげぇよって話

2021/03/19に公開

Workato初心者がドキュメント参照しながらAPI作ってカスタムコネクタ使ってみた。
GASと比較してみたけどめっちゃ簡単だったから感動した。

例題:Slackでemojiが押されたら対象のスレッドをスプレッドシートにコピーしてSlackに通知する

処理のステップはざっくり以下の4Step

  1. SlackBot作る
  2. Event Subscriptionsを有効にする
  3. Slack → イベント発火を受け取ってスプレッドシートにコピー
  4. Slackに通知

これをGASで書くとこうなる

// SlackのOutgoingから来るメッセージ
function doPost(e) {
  // Event API Verification 時のコード
  try {
    const json = JSON.parse(e.postData.getDataAsString());
    if (json.type == "url_verification") {
      return ContentService.createTextOutput(json.challenge);        
    }
  }
  catch (ex) {
Logger.log(ex);
} 

try {
    const json = JSON.parse(e.postData.getDataAsString());
      const channel = json.event.item.channel;
      const ts = json.event.item.ts;
      const reaction = json.event.reaction;

if (reaction == "thinking_face") {

getMessage(ts,channel);

}
      }   
catch (e) {
Logger.log(e);

}

}

function getMessage(ts,channel){
  const url = "https://slack.com/api/conversations.replies";
  const slack_app_token = "your-token";
  const limit =10;
  const options = {
    "method" : "get",
    "contentType": "application/x-www-form-urlencoded",
    "payload" : { 
      "token": slack_app_token,
      "channel": channel,
      "ts":ts
    }
  };
    const response = UrlFetchApp.fetch(url, options);
    const json = JSON.parse(response);
    const text = json.messages[0].text
    const date = new Date();
SpreadsheetApp.getActiveSheet().appendRow([date,text]);

postMessage();
}


function postMessage() {
  
  var url = "https://slack.com/api/chat.postMessage";
  
  var payload = {
    "token" : "your-token",
    "channel" : "channelID",
    "text" : "転記しました!!"
  };
  
  var params = {
    "method" : "post",
    "payload" : payload
  };
  
  // Slackに投稿する
  UrlFetchApp.fetch(url, params);
}

Workatoでやるとこうなる

かかった時間

GAS (経験:3年、1000時間くらい)

https://zenn.dev/barusu/articles/35cfe61d6e846f
https://zenn.dev/barusu/articles/0ae12e18a7f326
https://zenn.dev/barusu/articles/3598655e511696
全部で2時間くらい

Workato (経験:3週間、10時間くらい)

SlackBot設定:10分
ユーザー認証:2分
レシピの条件設定:15分
動作確認:5分

メンテするならどっち?

GAS得意だぜーって人じゃなければ大体の人がWorkatoの方を選ぶんじゃないかな。

すごくない?

すごいよね。

具体的には何が楽だった?

1. 認証が楽

GASだとトークンをプロパティに入れて、コードでは呼び出して。。。っとやらなきゃあかんが
Workatoだとポチポチで良い。3クリックくらい。

2. 認証した後、色々できる

GASからスプレッドシートの操作をするにはいちいち処理を追記しないといけないが、
Workatoでは予め用意されてるアクションが多々あるのでそれ選ぶだけ。
これもポチポチで良い。

3. わかりやすい

これはもう一目瞭然。
GASはすべてコードだけど、Workatoならフロー図になるし条件分岐もわかるから育成コストが低くて済む。

Workatoについてもっと知りたい!

この記事読んでみるといいよ。
https://blog.cloudnative.co.jp/4678/

Discussion