LoginSignup
12
10

More than 5 years have passed since last update.

chatworkからslackに移行したのでGASを使ってメッセージ転送した話

Last updated at Posted at 2018-03-16

chatworkからslackに移行したとは言っても。。

どっちのツールがどうこういう話は別として、chatworkで連絡を取り合っていたお客様に
「今後slackでお願いします!」とは言いづらい。。
chatworkは特定のお客様用に部屋を残すこととなった。

でも個人的にはchatworkとslackを常に上げておくのもなんか嫌だ。

chatworkのメッセージをslackに転送しよう

chatworkにちょうど良いapiがある。
http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-messages
前回取得分からの差分のメッセージが取れる
→ってことはそれをslackに流せば良い。

準備するもの

●chatworkのAPIトークン
 参考URL:https://help.chatwork.com/hc/ja/articles/115000172402-API-Token%E3%82%92%E7%99%BA%E8%A1%8C%E3%81%99%E3%82%8B
●slackのWebhook
参考URL:https://qiita.com/ik-fib/items/b4a502d173a22b3947a0
●googleアカウント

GASを書く

gas.js
function myFunction() {

  var CHATWORK_TOKEN = '上記の準備するもののAPIトークンをここに記載';
  var ROOM_ID = ["チャットワークのルームIDを記載","チャットワークのルームIDを記載"];

  var params = {
    headers : {"X-ChatWorkToken" : CHATWORK_TOKEN},
    method : "get"
  };

  for (var i = 0; i < ROOM_ID.length; i ++) {

    var url = "https://api.chatwork.com/v2/rooms/" + ROOM_ID[i] + "/messages?force=0";
    var strRespons = UrlFetchApp.fetch(url, params);

    if (strRespons != "") {

      var json = JSON.parse(strRespons.getContentText());
      if(json == "") return;

      for(var i in json){
        var message = '';
        message = message + json[i].account.name + "\n```" + json[i].body + "```\n";
        postSlack(message);
      }
    }
  } 
}

function postSlack(text){
  var url = "ここにはslackのWebhookを記載";
  UrlFetchApp.fetch(url, {
  payload : JSON.stringify({
    channel : "#部屋名を記載",
    text : text,
  })
  });
}

これで自分が入っているいる複数のチャットワークの部屋のメッセージが取得できる。
※ちなみにチャットワークのルームIDはチャットワークの部屋を開いた時のアドレスでわかる。
以下の例でいうと「12345678」
https://www.chatwork.com/#!rid12345678
※さらにちなみに起動トリガーは1分毎に設定した。

まぁまぁ便利

ただし、まぁまぁ。

今回はGAS使ってみようっていうのが実は動機にあった。
GASはとても簡単で便利。しかも無料。
武器(手段)が一つ増えたと思って、今回は満足。

12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10