Binary Diary

誰かに会ったり 話しかけたり 街行く人に優しくね

秒で Slack bot を LINE bot に移行する

どうもこたにんです。

秒でSlack bot を LINE bot に移行する

普段の生活のいろいろをSlack bot使って管理していたのですが。

プラットフォームをLINEに移行したいなということで、botたちをLINE側に移行していかねばならず。

簡単なメッセージpost系のbotなので、さくっと移行できるっしょと思って試してみまして。

その作業ログを簡単にまとめておきます。

botのコード変えたところ

既存のSlack botのメッセージPOSTしてるところ。

    function sendSlack(message) {
var postUrl = 'https://hooks.slack.com/services/hoge/fuga/piyo';
var payload = {
'username' : 'hoge',
   
'icon_emoji' : ':hoge:',
'text' : message
};
var options = {
'method' : 'post',
'contentType' : 'application/json',
'payload' : JSON.stringify(payload)
};

UrlFetchApp.fetch(postUrl, options);
   }

これを、LINE bot向けに書き換えたもの。

    function sendLine(message) {
var postUrl = 'https://api.line.me/v2/bot/message/push';
var token = 'TOKENSTRING';
var payload = {
'to' : 'groupid',
   
'messages' : [{
'type' : 'text',
'text' : message
}]
};
var options = {
'method' : 'post',
'contentType' : 'application/json',
'payload' : JSON.stringify(payload),
'headers' : {'Authorization' : 'Bearer ' + token}

};

UrlFetchApp.fetch(postUrl, options);
   }

payloadのフォーマットが、Slack/LINEそれぞれのAPIスキーマで異なるので、それは変わります。

postURLも、SlackだとwebhookURLそのままだったのを、LINEではメッセージ用APIのエンドポイントに変える。(使いたいAPIによってはwebhookを変えるだけでもいいかも、わたしはtoken使ったので)

んでLINEでは、リクエストヘッダにbearerトークンを載せてあげるってかんじ。(tokenは別途準備、後述する)

 

ってので、リクエストパラメータをちょろっと変えるだけでSlack bot→LINE botの移行は完了。

LINE Developersへの登録

LINEのメッセージ用APIなどを使えるようにするには、LINE Developersに登録さえすればよい。

チュートリアルが親切なので、これ読めばすぐわかる。

developers.line.biz

Slack botからの移行で考えると、↓のようなノリで捉えておけば良い。

  • Slackでいうワークスペース=LINE Developersでいうプロバイダー
  • Slackでいうアプリ=LINE Developersでいうチャネル

なので、チャネルを作ればそれが1つのアプリ設定となるので、チャネルごとにwebhookURLやtokenや、利用可能なAPI機能を決める感じ。

 

これで作成したチャネルのtokenを、あらかじめ作っていたbot側のコードに組み込んでおわり。

webhookだけでいいんだったら、チャネル作ればwebhookも1つもらえるので、それ使えばよい。

秒で移行おわり

LINEのAPIの使い方を知らなかったけど、LINE Developersが想像以上にわかりやすい触りやすいで、画面の言う通りに操作していったら何も悩まず作業できた。

ということで、便利なbot生活はこれからはLINEでやっていく〜。