【Slack】【LINE】Slackのメッセージ通知をLINEにも通知する

目次

環境

  • Slacki
    • アプリ : Outgoing Webhook
  • LINE
    • サービス : LINE Notify
  • GAS(Google Apps Script)

手順

1. Google Action Scriptを作成する

Googleドライブから作成できます。

1
Googleドライブ -> 左上のプラスボタン(新規ボタン) -> その他 -> Google Apps Script

Googleドライブ

2. コードを記述する

この時点では、コード内の「」で囲まれている以下に列挙している部分のトークンは取得していないので、空白で大丈夫です

  • 「SlackのOutgoing Webhookのトークン」
  • 「LINEのトークン」
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function doPost(e) {

//投稿のトークン取得
var t = e.parameter.token;

//トークンが一致しているか
if( t != "「SlackのOutgoing Webhookのトークン」")
{return;}

//各種情報を取得
var chName = e.parameter.channel_name;
var userName = e.parameter.user_name;
var text = e.parameter.text;
//@lineの部分はいらないから削除しとく
text =text.substring(5);
var msg = "\n【発言のあったチャンネル】: "+chName+
"\n【発言者】 : "+userName+ "\n【内容】\n"+text;
//送信
send(msg);
}

function send(message)
{
//lineトークン
var token = "「LINEのトークン」";

var op =
{
"method" : "post",
"payload": "message=" + message,
"headers":{"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify",op);
}

3. LINEのLINE Notifyの登録

使用しているLINEアカウントでログイン後、以下の手順でNotifyアプリの登録を行います。

1
右上の名前クリック -> マイページ -> アクセストークンの発行 -> トークン名、ルームの選択

LINE設定_1
LINE設定_2
LINE設定_3

この手順で発行されるトークンをメモしておきます。

4. SlackのOutgoing Webhookの設定

  1. 以下のURLから、Slack Appの管理ページに飛びます。
  • https://ワークスペース名-workspace.slack.com/services
  1. 画面上部にある、App ディレクトリの検索Outgoing Webhookを検索します。

  2. Outgoing WebhookをSlackに追加します。
    Slack設定_1

  3. そのまま設定を開き、画像の赤枠の欄のトークンをメモしておきます。

Slack設定_2

  1. 画面を開いたままでGoogle Apps Scriptに移動します。

5. Google Apps Scriptのトークン部分を埋めてデプロイ

  1. メモしたトークンを追記する
  • 「SlackのOutgoing Webhookのトークン」
  • 「LINEのトークン」
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function doPost(e) {

//投稿のトークン取得
var t = e.parameter.token;

//トークンが一致しているか
if( t != "「SlackのOutgoing Webhookのトークン」")
{return;}

//各種情報を取得
var chName = e.parameter.channel_name;
var userName = e.parameter.user_name;
var text = e.parameter.text;
//@lineの部分はいらないから削除しとく
text =text.substring(5);
var msg = "\n【発言のあったチャンネル】: "+chName+
"\n【発言者】 : "+userName+ "\n【内容】\n"+text;
//送信
send(msg);
}

function send(message)
{
//lineトークン
var token = "「LINEのトークン」";

var op =
{
"method" : "post",
"payload": "message=" + message,
"headers":{"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify",op);
}
  1. 新規デプロイのための設定をする
    画面上部のデプロイから新しいデプロイを選択

GAS設定_1

種類の選択から、ウェブアプリを選択

GAS設定_2

アクセスできるユーザーを全員に設定

GAS設定_3

  1. URLをメモする
    デプロイが成功すると、アプリのURLが生成されるのでコピーします。

GAS設定_4

6. Outgoing WebhookにGASアプリの紐付け

赤枠で囲まれている欄にGASアプリのURLを貼り付けて、設定を保存します。

Slack紐付け

7. 試してみる

今回のキーワード設定だと、@lineを先頭につけて投稿したメッセージがLINEにも投稿されることになります。

参考

【Slack】【LINE】Slackのメッセージ通知をLINEにも通知する

https://blog.djima.net/2021/06/18/【Slack】【LINE】Slackのメッセージ通知をLINEにも通知する/

Author

Daiki Iijima

Posted on

2021-06-18

Updated on

2024-04-17

Licensed under