Pushover
Go wrapper for the Pushover API
Install / Use
/learn @gregdel/PushoverREADME
pushover
pushover is a wrapper around the Superblock's Pushover API written in go. Based on their documentation. It's a convenient way to send notifications from a go program with only a few lines of code.
Messages
Send a simple message
Here is a simple example for sending a notification to a recipient. A recipient can be a user or a group. There is no real difference, they both use a notification token.
package main
import (
"log"
"github.com/gregdel/pushover"
)
func main() {
// Create a new pushover app with a token
app := pushover.New("uQiRzpo4DXghDmr9QzzfQu27cmVRsG")
// Create a new recipient
recipient := pushover.NewRecipient("gznej3rKEVAvPUxu9vvNnqpmZpokzF")
// Create the message to send
message := pushover.NewMessage("Hello !")
// Send the message to the recipient
response, err := app.SendMessage(message, recipient)
if err != nil {
log.Panic(err)
}
// Print the response if you want
log.Println(response)
}
Send a message with a title
There is a simple way to create a message with a title. Instead of using pushover.NewMessage you can use pushover.NewMessageWithTitle.
message := pushover.NewMessageWithTitle("My awesome message", "My title")
Send a fancy message
If you want a more detailed message you can still do it.
message := &pushover.Message{
Message: "My awesome message",
Title: "My title",
Priority: pushover.PriorityEmergency,
URL: "http://google.com",
URLTitle: "Google",
Timestamp: time.Now().Unix(),
Retry: 60 * time.Second,
Expire: time.Hour,
DeviceName: "SuperDevice",
CallbackURL: "http://yourapp.com/callback",
Sound: pushover.SoundCosmic,
}
Send a message with an attachment
You can send an image attachment along with the message.
file, err := os.Open("/some/image.png")
if err != nil {
panic(err)
}
defer file.Close()
message := pushover.NewMessage("Hello !")
if err := message.AddAttachment(file); err != nil {
panic(err)
}
Callbacks and receipts
If you're using an emergency notification you'll have to specify a retry period and an expiration delay. You can get the receipt details using the token in the message response.
...
response, err := app.SendMessage(message, recipient)
if err != nil {
log.Panic(err)
}
receiptDetails, err := app.GetReceiptDetails(response.Receipt)
if err != nil {
log.Panic(err)
}
fmt.Println("Acknowledged status :", receiptDetails.Acknowledged)
You can also cancel an emergency notification before the expiration time.
response, err := app.CancelEmergencyNotification(response.Receipt)
if err != nil {
log.Panic(err)
}
User verification
If you want to validate that the recipient token is valid.
...
recipientDetails, err := app.GetRecipientDetails(recipient)
if err != nil {
log.Panic(err)
}
fmt.Println(recipientDetails)
Related Skills
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
343.3kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
