컬을 사용하여 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
수신 웹훅을 사용하고 있는 것 같습니다.
다음 중 하나를 선택하십시오.
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"