Итак, я пытаюсь отправить сообщение на указанный c свободный канал, используя файл 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, потому что у него слабый токен. Webhook работает, но сообщения не загружаются в curl полезной нагрузки для --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"
}
}