カールを使用してSlackにメッセージを送信するスクリプトを作成しています。これは私のコードです。
@echo off
@SETLOCAL EnableExtensions EnableDelayedExpansion
SET topic="Fw: *** Subject: Detail|detail|more-detail|detail:000"
echo %topic%
curl.exe -X POST -H "Content-Type: application/json" --data-urlencode "payload={\"channel\": \"#channelname\", \"username\": \"webhookbot\",\"text\": \"%topic\",\"icon_emoji\": \":ghost:\"}" SLACK_WEBHOOK -k
invalid_payload
このスクリプトを実行すると、エコーされた結果とともにエラーが発生します。誰でもこの問題を解決するのに役立ちますか?
私はこれを読んだワイヤーしかし、まだどのように解決するのかわかりません。
答え1
受信Webフックを使用しているようです。
次のいずれかを選択します。
a) 削除-H 'Content-type: application/json'
または変更-H 'Cotent-type: application/x-www-form-urlencoded'
curl.exe -X POST --data-urlencode "payload={\"channel\": \"#channelname\", \"username\": \"webhookbot\",\"text\": \"%topic\",\"icon_emoji\": \":ghost:\"}" SLACK_WEBHOOK_URL
b) 予約済みコンテンツタイプ現状のままですが、--data-urlencode
データに変更と-d
削除payload=
curl.exe -X POST -H "Content-Type: application/json" -d "{\"channel\": \"#channelname\", \"username\": \"webhookbot\",\"text\": \"%topic\",\"icon_emoji\": \":ghost:\"}" SLACK_WEBHOOK_URL
ただし、Slack API(例:/chat.postMessage)を使用している場合:
1)トークン認証を使用する必要があります - カールオプションを追加する-H "Authorization: Bearer YOUR_TOKEN_HERE"
2)使用しないでください--data-urlencode
。しかし-d
ドキュメントから:https://api.slack.com/methods/chat.postメッセージ
application/x-www-form-urlencoded データとしてパブリッシュする場合、オプションの Attachments パラメーターには JSON でエンコードされた添付ファイルの配列を含める必要があります。気軽に考えて、メッセージ全体をapplication / jsonに送信してください。
payload=
3) データから削除
curl.exe -X POST -H 'Content-Type: application/json' -H "Authorization: Bearer YOUR_TOKEN_HERE" -d "{ \"channel\": \"#channelname\", \"text\": \"message body\", \"username\": \"webhookbot\", \"icon_emoji\": \":ghost:\" }" "https://slack.com/api/chat.postMessage"