目次
Slack API「chat.postMessage」を利用して、JavaScriptからSlackへ改行入りのメッセージを送信しました。
しかし、上手く反映されなかったので、対応方法をまとめました。
Slack API chat.postMessage のドキュメント
chat.postMessage method | Slack
今回は、
- token(必須)
- channel(必須)
- text
のパラメータを利用し、fetchでURLにクエリパラメータを付与して送信する仕様とします。
改行が反映されなかった方法
const token = `{YOUR TOKEN KEY}`;
const channel = `random`;
const text = `ようこそ!¥nSlackへ!`;
const url = `https://slack.com/api/chat.postMessage?token=${token}&channel=${channel}&text=${text}`;
fetch(url).then(function(response) {
console.log(response);
});
この送信方法の場合
ようこそ!Slackへ!
となり、改行が消えてしまいました。
改行が反映された方法
URLSearchParamsを利用
URLSearchParams - Web API | MDN
const token = `{YOUR TOKEN KEY}`;
const channel = `random`;
const text = `ようこそ!¥nSlackへ!`;
const url = `https://slack.com/api/chat.postMessage?token=${token}&channel=${channel}&text=${new URLSearchParams(text).toString().slice(0, -1)}`
fetch(url).then(function(response) {
console.log(response);
});
末尾に記号(=)がついてしまう
URLSearchParamsを利用すると、末尾の文字に=
が付与されるため、sliceを利用して末尾の文字を削除しました。
Array.prototype.slice() - JavaScript | MDN
負のインデックスを使って、列の終わりからのオフセットとして指定することができます。slice(2,-1) は列の 3 番目から、最後から 2 番目までの要素を取り出します。
出典:Array.prototype.slice() - JavaScript | MDN(https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)
new URLSearchParams(text).toString().slice(0, -1);
この送信方法の場合
ようこそ!
Slackへ!
となり、改行を反映させることができました。