どうもこたにんです。
秒で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に登録さえすればよい。
チュートリアルが親切なので、これ読めばすぐわかる。
Slack botからの移行で考えると、↓のようなノリで捉えておけば良い。
- Slackでいうワークスペース=LINE Developersでいうプロバイダー
- Slackでいうアプリ=LINE Developersでいうチャネル
なので、チャネルを作ればそれが1つのアプリ設定となるので、チャネルごとにwebhookURLやtokenや、利用可能なAPI機能を決める感じ。
これで作成したチャネルのtokenを、あらかじめ作っていたbot側のコードに組み込んでおわり。
webhookだけでいいんだったら、チャネル作ればwebhookも1つもらえるので、それ使えばよい。
秒で移行おわり
LINEのAPIの使い方を知らなかったけど、LINE Developersが想像以上にわかりやすい触りやすいで、画面の言う通りに操作していったら何も悩まず作業できた。
ということで、便利なbot生活はこれからはLINEでやっていく〜。