いつもお世話になっております、今回も皆様のお知恵を拝借できたらと思いご質問させていただけますと幸いです。
前提
Google Spreadsheetにて、ウェブ制作のレビュー管理を行っています。
項目は下記になります。
- ステータス(対応済みかどうか)
- 優先度
- 確認(修正事項報告者が修正されたことを確認したかどうか)
- 報告日
- 報告者
- 対応担当
- 端末
- ページ名
- 内容
- 備考
- 報告者メンション
- 対応担当者メンション
上記項目でシートを作成し「内容」「備考」以外に関しては基本的にプルダウンなどによる選択式を取っています。
「報告者メンション」「対応担当者メンション」は各担当者にひも付き該当のメンション(別シート管理)の値が自動で入力される仕組みになっています。
やりたいこと
このSpreadsheetで「内容」のセルをトリガーにしてGoogle App ScriptにてSlackへの通知をメンション付きで行いたいと考えています。
例えば「Aさん(報告者)」が「担当Bさん」に「エラーを投稿しました」
といった具合です。
この通知自体をSlack内の特定のチャンネルに送っており、更にその中でメンションをつけて通知が届くようにしたいと考えています。
現在のコード
JavaScript
1function showStatus(){ 2 const mySheet = SpreadsheetApp.getActiveSheet(); //シートを取得 3 const myCell = mySheet.getActiveCell(); //アクティブセルを取得 4 const ss = SpreadsheetApp.getActiveSpreadsheet(); //スプシ(≠シート)を取得 5 const ss_url = ss.getUrl(); 6 if(myCell.getColumn()==12){ //数字の部分には列番号(この場合E列) 7 var text = '@' + myCell.offset(0, 9).getValue() + '\n 報告者「' + myCell.offset(0, -5).getValue() + '」から担当「' + myCell.offset(0, -4).getValue() + '」にエラー報告が追加されました' + ss_url; 8 slackPost(); 9 } 10 function slackPost(){ 11 const url = 'https://slack.com/api/chat.postMessage'; 12 const token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx------トークン----------'; 13 const channel = '#チャンネル名'; 14 const username = 'タスク更新通知BOT'; 15 const parse = 'full'; 16 const method = 'post'; 17 const payload = { 18 'token' : token, 19 'channel' : channel, 20 'text' : text, 21 'username' : username, 22 'parse' : parse, 23 }; 24 const params = { 25 'method' : method, 26 'payload' : payload 27 }; 28 const response = UrlFetchApp.fetch(url, params); 29 } 30}
上記が今設置しているコードです。
試した記事はこちらです
これだけでも正常に稼働はしており、問題なく指定したチャンネルに通知が飛んできています。
下記コードにて、メンションのセルを取得し、そのvalueを入れています。
JavaScript
1'@' + myCell.offset(0, 9).getValue() + '\n 報告者「'
やったこと
ググってみると「@username」の形式が廃止になっている、「@userID」でないといけないですとか、「<!username>」としないといけない、また「@username」でも「link_name=1」が記載されていると問題なく動くといった記事に当たるのですが、どれも試してみても正常に動きませんでした。
Logger.Log()
にて出力してみました。
見たところ特にエラーのようなものが吐き出されているようには見えないのですが、何か参考になれば幸いです。
やりたいこと
JavaScript
1'@' + myCell.offset(0, 9).getValue() + '\n 報告者「'
ここで設定したメンションをつけて、現在設定しているSlackチャンネルにメンション(通知)つきで投稿されるようにしたいと考えています。
最後に
長文乱文大変失礼いたしました。
最後までお付き合いいただきありがとうございました。
何卒皆様のお知恵を賜れますと幸いです。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー