cURL 無効なペイロード

cURL 無効なペイロード

カールを使用して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"

おすすめ記事