Improve broadcast push script
This commit is contained in:
@@ -1,23 +1,37 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Рассылка пуша всем подписчикам топика "aprsmap" (RuStore Push).
|
# Рассылка пуш-уведомления ВСЕМ подписчикам топика "aprsmap" (RuStore Push).
|
||||||
# Использование: ./push.sh "Заголовок" "Текст"
|
# Топик = все устройства, где установлено приложение APRS RadioRubka
|
||||||
# project_id и service token читаются из tools/.push.secrets (в git не хранится).
|
# и оно хотя бы раз запускалось (подписка на клиенте выполняется сама).
|
||||||
|
#
|
||||||
|
# Использование:
|
||||||
|
# ./push.sh "Заголовок" "Текст"
|
||||||
|
#
|
||||||
|
# Пример для крон/автоматики:
|
||||||
|
# */5 * * * * /home/ua1zbe/aprsmap/tools/push.sh "Новость" "$(cat /tmp/news.txt)"
|
||||||
|
#
|
||||||
|
# Project id и service token читаются из tools/.push.secrets (в git не хранится)
|
||||||
|
# либо из переменных окружения PUSH_SECRETS / SERVICE_TOKEN / PROJECT_ID.
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
[ -f "$DIR/.push.secrets" ] && . "$DIR/.push.secrets"
|
SECRETS="${PUSH_SECRETS:-$DIR/.push.secrets}"
|
||||||
|
[ -f "$SECRETS" ] && . "$SECRETS"
|
||||||
|
|
||||||
SERVICE_TOKEN="${SERVICE_TOKEN:-${SSP:-}}"
|
SERVICE_TOKEN="${SERVICE_TOKEN:-${SSP:-}}"
|
||||||
PROJECT_ID="${PROJECT_ID:-}"
|
PROJECT_ID="${PROJECT_ID:-}"
|
||||||
|
|
||||||
[ -n "$SERVICE_TOKEN" ] || { echo "SERVICE_TOKEN is not set" >&2; exit 1; }
|
[ -n "$SERVICE_TOKEN" ] || { echo "Ошибка: SERVICE_TOKEN не задан" >&2; exit 1; }
|
||||||
[ -n "$PROJECT_ID" ] || { echo "PROJECT_ID is not set" >&2; exit 1; }
|
[ -n "$PROJECT_ID" ] || { echo "Ошибка: PROJECT_ID не задан" >&2; exit 1; }
|
||||||
|
|
||||||
title="${1:?usage: push.sh <title> <body>}"
|
title="${1:?Использование: $0 \"Заголовок\" \"Текст\"}"
|
||||||
body="${2:-}"
|
body="${2:-}"
|
||||||
|
|
||||||
curl -s -X POST \
|
resp=$(curl -s -X POST \
|
||||||
"https://vkpns-topics.rustore.ru/v1/projects/${PROJECT_ID}/topics/aprsmap/publish" \
|
"https://vkpns-topics.rustore.ru/v1/projects/${PROJECT_ID}/topics/aprsmap/publish" \
|
||||||
-H "Authorization: Bearer ${SERVICE_TOKEN}" \
|
-H "Authorization: Bearer ${SERVICE_TOKEN}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d "{\"message\":{\"notification\":{\"title\":\"${title}\",\"body\":\"${body}\"}}}"
|
-d "{\"message\":{\"notification\":{\"title\":\"${title}\",\"body\":\"${body}\"}}}")
|
||||||
echo
|
|
||||||
|
echo "$resp" | grep -q "successfully published" && {
|
||||||
|
echo "OK: пуш отправлен всем подписчикам топика aprsmap"
|
||||||
|
} || { echo "Ошибка отправки: $resp" >&2; exit 1; }
|
||||||
Reference in New Issue
Block a user