그래서 secrets.json
파일을 사용하여 메시지와 웹 후크 URL 모두에 대한 페이로드를 지정 하는 특정 슬랙 채널에 메시지를 보내려고합니다 . 메시지에 게시 할 수 있지만 페이로드 변수가 올바르게 설정되어 있어도 메시지를 페이로드로로드하지 않습니다. 지정한 curl 명령 내에서 메시지 페이로드를로드하려면 어떻게해야합니까?
다음은 코드입니다.
richardbarret@1152-MBP ~/Git/SalesforceCLI/Integration/Slack master ● ./automated_messages.sh ✔ 1488 10:48:42
https://hooks.slack.com/services/XXXXXXXXX/XXXXXXX/XXXXXX
Webhook Variable is Working.
invalid_payload% richardbarret@1152-MBP ~/Git/SalesforceCLI/Integration/Slack master ● cat automated_messages.sh ✔ 1489 10:48:59
#!/bin/bash
# ===========================================================
# Created By: Richard Barrett
# Organization: Mirantis
# Department: Customer Success Operation
# Purpose: Send Message to Slack Channel
# Date: 03/20/2020
# ===========================================================
# System Variables
webhook_url=$(cat secrets.json | jq ".slack_config.slack_target_url" | tr -d \")
echo $webhook_url
printf "Webhook Variable is Working.\n"
message_1=$(cat secrets.json | jq ".slack_messages.message_1" | tr -d \")
message_2=$(cat secrets.json | jq ".slack_messages.message_2" | tr -d \")
message_3=$(cat secrets.json | jq ".slack_messages.message_3" | tr -d \")
# Use Messages in this command syntax
# Example
# curl -X POST -H 'Content-type: application/json' --data '{"text":"TEST TEXT BODY"}' $webhook_url
# General Message:
curl -X POST -H 'Content-type: application/json' --data '{"text":"$message_1"}' $webhook_url
# Messages for Handover:
#curl -X POST -H 'Content-type: application/json' --data '{"text":"Handovers: https://mirantis.my.salesforce.com/XXXXXXXXXXXXXXX"}' $webhook_url
# Message for All Change Requests:
#curl -X POST -H 'Content-type: application/json' --data '{"text":"All Change Requests: https://mirantis.my.salesforce.com/XXXXXXXXXXXX"}' $webhook_url
# Message for Change Requests in Ready to Execute
# curl -X POST -H 'Content-type: application/json' --data '{"text":"All CRs in Ready to Execute:"}' $webhook_url
나는 고정 Invalid Payload
내가 사용하는 것을 잊었다 때문에 "text":
내 옵션을 --data
나는 그게 문제가되지 않습니다 알 수 있도록. 위의 스크립트를 실행하면 다음과 같이 게시됩니다.
그래서 나는 주변의 인용문을 삭제하려고 시도 $message_1
하고 메시지를 받았습니다.
Webhook Variable is Working.
invalid_payload%
슬랙 토큰이 있기 때문에 Webhook 응답을 삭제했습니다. 웹훅은 작동하지만 이상한 이유로 --data에 대한 페이로드 컬에 메시지가로드되지 않습니다.
secrets.json
다음과 같다 :
{
"slack_config": {
"slack_target_url": "https://hooks.slack.com/services/XXXXXXX/XXXXXXXXXXX/XXXXXXXXXXXXXXX"
},
"slack_messages": {
"message_1": "SLACK_MESSAGE_1 Testing Secrets Calls from secrets.json File",
"message_3": "SLACK_MESSAGE_3 Testing Secrets Calls from secrets.json File",
"message_2": "SLACK_MESSAGE_2 Testing Secrets Calls from secrets.json File"
}
}
SRE 인 제 친구 덕분에 그는 저를 올바른 방향으로 안내 할 수있었습니다. 에서 무언가를 읽으려고 할 때 secrets.json
$ message_1을 지정하지 않았습니다. 하지만 이제는
--data '{"text":"$message_1"}'
와
--data "{\"text\":\"$message_1\"}"
그런 다음 노출하지 않고 다른 파일 내에서 메시지를 호출 할 수 있습니다. 이렇게하면 메시지에 삽입해야 할 수있는 링크가 더 안전 할뿐만 아니라 메시지에 하드 코딩되지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다