#!/bin/bash clientId=$(hostname) topic="no topic" payload="no payload" title="$(hostname) Detection" startMillis=$(date +'%s') startDate=$(date '+%Y-%m-%d %H:%M:%S') SERVER_KEY=GCM-SERVERKEY # you find it in firebase console while getopts ":c:p:w:q:t:" opt; do case $opt in c) clientId="$OPTARG" ;; p) payload="$OPTARG" ;; t) topic="$OPTARG" ;; \?) echo "Invalid option -$OPTARG" >&2 ;; esac done eval "action=''" eval "notification='\"notification\":{\"body\":\"$payload\",\"title\":\"$title\"$action}'" eval "data='{\"to\" : \"/topics/${topic}\", \"data\":{\"message\":\"$payload\",\"start\": $startMillis,\"date\":\"$startDate\",\"client\":\"$clientId\"}, $notification}'" echo $data > /tmp/json eval "cmd='curl -X POST --header \"Authorization: key=$SERVER_KEY\" --Header \"Content-Type: application/json\" https://fcm.googleapis.com/fcm/send -d \"@/tmp/json\"'" result=$(curl -X POST --header "Authorization: key=$SERVER_KEY" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "@/tmp/json") echo $result