Docs (WIP), Firebase
parent
5a9b2122c2
commit
3c3b2477af
|
@ -877,6 +877,102 @@ Here's an example that will open Reddit when the notification is clicked:
|
||||||
]));
|
]));
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## User actions
|
||||||
|
|
||||||
|
|
||||||
|
=== "`view` action"
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"action": "view",
|
||||||
|
"label": "Open bing.com",
|
||||||
|
"url": "https://bing.com"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "`broadcast` action"
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"action": "broadcast",
|
||||||
|
"label": "Send broadcast",
|
||||||
|
"intent": "io.heckel.ntfy.USER_ACTION",
|
||||||
|
"extras": {
|
||||||
|
"param": "this is a param",
|
||||||
|
"anotherparam": "this is another one"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "`http` action"
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"action": "http",
|
||||||
|
"label": "Take picture",
|
||||||
|
"method": "POST",
|
||||||
|
"url": "https://homecam.lan/capture",
|
||||||
|
"headers": {
|
||||||
|
"Authorization": "..."
|
||||||
|
},
|
||||||
|
"body": "this is a message"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
=== "Open a website"
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"action": "view",
|
||||||
|
"label": "Open bing.com",
|
||||||
|
"url": "https://bing.com"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Open location in Google Maps"
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"action": "view",
|
||||||
|
"label": "Show map",
|
||||||
|
"url": "geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Open a ntfy topic (deep link)"
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"action": "view",
|
||||||
|
"label": "Show stats",
|
||||||
|
"url": "ntfy://ntfy.sh/stats"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Send broadcast"
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"action": "broadcast",
|
||||||
|
"label": "Send broadcast",
|
||||||
|
"intent": "my.custom.intent",
|
||||||
|
"extras": {
|
||||||
|
"message": "whats up, hello"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Send a ntfy message"
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"action": "http",
|
||||||
|
"label": "Send message",
|
||||||
|
"method": "POST",
|
||||||
|
"url": "http://ntfy.example.com/mytopic",
|
||||||
|
"headers": {
|
||||||
|
"Title": "another message",
|
||||||
|
"Tags": "tag1, tag2"
|
||||||
|
},
|
||||||
|
"body": "this is a message"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Attachments
|
## Attachments
|
||||||
You can **send images and other files to your phone** as attachments to a notification. The attachments are then downloaded
|
You can **send images and other files to your phone** as attachments to a notification. The attachments are then downloaded
|
||||||
onto your phone (depending on size and setting automatically), and can be used from the Downloads folder.
|
onto your phone (depending on size and setting automatically), and can be used from the Downloads folder.
|
||||||
|
|
|
@ -81,6 +81,13 @@ func toFirebaseMessage(m *message, auther auth.Auther) (*messaging.Message, erro
|
||||||
"message": m.Message,
|
"message": m.Message,
|
||||||
"encoding": m.Encoding,
|
"encoding": m.Encoding,
|
||||||
}
|
}
|
||||||
|
if len(m.Actions) > 0 {
|
||||||
|
actions, err := json.Marshal(m.Actions)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
data["actions"] = string(actions)
|
||||||
|
}
|
||||||
if m.Attachment != nil {
|
if m.Attachment != nil {
|
||||||
data["attachment_name"] = m.Attachment.Name
|
data["attachment_name"] = m.Attachment.Name
|
||||||
data["attachment_type"] = m.Attachment.Type
|
data["attachment_type"] = m.Attachment.Type
|
||||||
|
|
|
@ -53,6 +53,7 @@ type action struct {
|
||||||
Method string `json:"method,omitempty"` // used in "http" action, default is POST (!)
|
Method string `json:"method,omitempty"` // used in "http" action, default is POST (!)
|
||||||
Headers map[string]string `json:"headers,omitempty"` // used in "http" action
|
Headers map[string]string `json:"headers,omitempty"` // used in "http" action
|
||||||
Body string `json:"body,omitempty"` // used in "http" action
|
Body string `json:"body,omitempty"` // used in "http" action
|
||||||
|
Intent string `json:"intent,omitempty"` // used in "broadcast" action
|
||||||
Extras map[string]string `json:"extras,omitempty"` // used in "broadcast" action
|
Extras map[string]string `json:"extras,omitempty"` // used in "broadcast" action
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue