質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

1回答

449閲覧

slack の投稿をラインで通知させる実装にて

kkkkkkkkkkkf

総合スコア6

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2020/03/04 08:22

編集2020/03/05 06:24

@AzuQiita様の投稿を見ながら手順通りにしましたが、lineには通知がきませんでした。
もし、この投稿だけでは足りなくて自ら追加しする必要があることなどがあれば教えて頂けますでしょうか?><
また、自分でslack → Outgoing WebHooksで値がちゃんと渡しているかを確認できる方法などあれば教えてください。
よろしくお願いします。


追記

GASのコードがちゃんと動くか?を試してみました。

下記のように__send__をクリックしました。
イメージ説明

ラインには通知が来ました。(パラメータを設定しないのでundefinedなんだろうと思います。)
イメージ説明

ということは、outgoingWebhook側での設定に不備があり、又doPost内で値が渡っていないかに原因があるのかと推測しました。

gasの「公開」→「ウェブアプリケーションの導入」で新しくして保存した時にでるURLをWebhook側のURLにコピペしました。
イメージ説明
発行したURLをコピペ↓
イメージ説明

gas

1function doPost(e) { 2 3 //各種情報を取得 4 var chName = e.parameter.channel_name; 5 var userName = e.parameter.user_name; 6 var text = e.parameter.text; 7 //@lineの部分はいらないから削除しとく 8 text =text.substring(5); 9 var msg = "LINEにも通知したい投稿がSlackで行われました。\n各自確認してください。\n発言のあったチャンネル"+chName+ 10 "\n発言者 "+userName+ "\n内容 : "+text; 11 //送信 12 send(msg); 13} 14 15function send(message) 16{ 17 //lineトークン 18 var token = "lineトークン"; 19 20 var op = 21 { 22 "method" : "post", 23 "payload": "message=" + message, 24 "headers":{"Authorization" : "Bearer " + token} 25 }; 26UrlFetchApp.fetch("https://notify-api.line.me/api/notify",op); 27}

一度、自身のメールアドレスに通知されるか試しましたが無反応でした。

この2つについてしらべています。

  1. Webhook側の設定の不備の修正
  2. ログというものを使ってdoPost内の値を調べる

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2020/03/04 12:48

最新の情報にアップデートしていないですが過去の経験からはこれで動作すると思います。他には不要だと思います。 記事に不足があるなら著者に聞いてください。 質問者さまがやったことをかかないのなら、それはこのQiita記事の改善(素人のつまづきが減るようにより丁寧にする)なので、著者がやるべきことです。
kkkkkkkkkkkf

2020/03/05 01:02

ご回答ありがとうございます。 記事をそのままやって、わからないところの質問を丸投げするのは確かに良くないと思いました。 今後気を付けてまいります。
papinianus

2020/03/05 03:28

良くないとか言ってないです。やった過程のキャプチャ貼ってください。そのままがどのままかわからないんですよ。もし世の中の参考資料の、そのまま、が誰も間違わないものだったらteratailの質問は半減してます。
guest

回答1

0

この部分に限って回答します。なぜ他人の記事を無償で手直ししないといけないのでしょうか。

自分でslack → Outgoing WebHooksで値がちゃんと渡しているかを確認できる方法などあれば教えてください。

javascript

1 function doPost(e) { 2//追記ここから//////////////////////////////////////////////// 3 //投稿のトークン取得 4 var t = e.parameter.token; 5 6 //トークンが一致しているか 7 if( t != "Outgoing WebHooksの設定画面にあったトークン") 8 {return;} 9//追記ここまで//////////////////////////////////////////////// 10 11 12 //各種情報 13 var chName = e.parameter.channel_name; 14 var userName = e.parameter.user_name; 15 var text = e.parameter.text; 16 //@lineの部分はいらないから削除しとく 17 text =text.substring(5); 18 var msg = "LINEにも通知したい投稿がSlackで行われました。\n各自確認してください。\n発言のあったチャンネル"+chName+ 19 "\n発言者 "+userName+ "\n内容 : "+text; 20 send(msg); 21}

ここの末尾の send(msg);MailApp.sendEmail("<あなたのメールアドレス>","test",msg); にすれば、slack から送信されたらメールが送信されるようになるので、Line ではなく slack 部分の確認ができます。
Logger.log(msg);でもいいですが、ロガーの話をするのが辛いのでメールにしました。

投稿2020/03/04 12:52

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kkkkkkkkkkkf

2020/03/06 02:40

追記にも記載しましたが、自分のメールに届くように設定しても届きませんでした。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問