エラー内容
実行コマンド
#!/bin/bash
tmpfile=$(mktemp)
echo "\"hoge\"" >> $tmpfile
HOGE_LOG=$(cat $tmpfile | sed "s/\"/'/g")
echo "Hoge log:"
echo "$HOGE_LOG"
curl -s -X POST -H 'Content-Type: application/json' \
-d "{\"text\": \"$HOGE_LOG\"}" \
$SLACK_WEBHOOK_URL
rm $tmpfile
出力結果
Hoge log:
"hoge"
invalid_payload
原因
メッセージにダブルクォートを含むことが原因であることが判明
解決方法
/"
を'
で全て置換する
実行コマンド
#!/bin/bash
tmpfile=$(mktemp)
echo "\"hoge\"" >> $tmpfile
HOGE_LOG=$(cat $tmpfile | sed "s/\"/'/g")
echo "Hoge log:"
echo "$HOGE_LOG"
curl -s -X POST -H 'Content-Type: application/json' \
-d "{\"text\": \"$HOGE_LOG\"}" \
$SLACK_WEBHOOK_URL
rm $tmpfile
### 出力結果
Hoge log:
'hoge'
ok
参考