I use a deGoogled android phone which prevents the HamAlert app from sending me notifications. As a stop-gap, I learned that the ntfy service provides a mechanism for notifications to be sent to my phone via an HTTP request. It also supports templating of the request body if the request body is application/json
.
For instance if I make the following request:
curl \
--globoff \
--data '{"title": "SIMULATED spot N0CALL (28.420 SSB)"}' \
'https://ntfy.fediverse.radio/ham-alert-zwgssphq?tpl=1&m={{.title}}'
My phone will be notified with the title of the simulated spot.
I attempted to use that URL with the URL destination and it didn’t work. I came to learn that the data that Ham Alert sends is in application/x-www-form-urlencoded
.
That is a sensible choice to make. All web frameworks are able to parse data in that format.
Unfortunately ntfy only accepts application/json
and returns a 400 if I send it form data
$ curl \
> --globoff \
> --data 'SIMULATED%20spot%20N0CALL%20%2828.420%20SSB%29' \
> 'https://ntfy.fediverse.radio/ham-alert-zwgssphq?tpl=1&m={{.title}}'
{"code":40042,"http":400,"error":"invalid request: message body must be JSON if templating is enabled","link":"https://ntfy.sh/docs/publish/#message-templating"}
I was wondering if an option could be added to the URL destination to post application/json
data? That would enable me to be able to receive notifications on my phone via ntfy.
Thank you and 73,
Eric KC3YQI