Skip to content
 
 

Repository files navigation

notify logo

A dead simple Go library for sending notifications to various messaging services.

 

CI Go Report Card go.dev reference

 

About

Notify started as a solution to a personal problem: its original creator needed a simple way to send notifications across different messaging platforms. What began as a tool for personal use has grown into a library designed for quick integration and ease of use, applicable to any notification scenario.

This repository is an actively maintained fork of nikoksr/notify. It preserves Notify's simple API while keeping dependencies current, replacing unmaintained client libraries, and maintaining service integrations.

Disclaimer

Any misuse of this library is your own liability and responsibility and cannot be attributed to the authors of this library. See license for more.

Spamming through the use of this library may get you permanently banned on most supported platforms.

Since Notify is highly dependent on the consistency of the supported external services and the corresponding latest client libraries, we cannot guarantee its reliability nor its consistency, and therefore you should probably not use or rely on Notify in critical scenarios.

Install

go get -u github.com/trungdlp/notify

Example usage

// Create a telegram service. Ignoring error for demo simplicity.
telegramService, _ := telegram.New("your_telegram_api_token")

// Passing a telegram chat id as receiver for our messages.
// Basically where should our message be sent?
telegramService.AddReceivers(-1234567890)

// Optional: send messages to a specific forum topic (message thread).
telegramService.SetMessageThreadID(12345)

// Tell our notifier to use the telegram service. You can repeat the above process
// for as many services as you like and just tell the notifier to use them.
// Inspired by http middlewares used in higher level libraries.
notify.UseServices(telegramService)

// Send a test message.
_ = notify.Send(
	context.Background(),
	"Subject/Title",
	"The actual message - Hello, you awesome gophers! :)",
)

Recommendation

In this example, we use the global Send() function. Similar to most logging libraries such as zap, we provide global functions for convenience. However, as with most logging libraries, we also recommend avoiding the use of global functions as much as possible. Instead, use one of our versatile constructor functions to create a new local Notify instance and pass it down the stream.

Contributing

Contributions of all kinds are welcome. Check the open issues, read the contribution guidelines, or open a pull request to help keep the library and its service integrations up to date.

Psst, don't forget to check the list of missing services waiting to be added by you or create a new issue if you want a new service to be added.

Supported services

Click here to request a missing service.

Service Path Credits Status
Amazon SES service/amazonses aws/aws-sdk-go-v2 ✔️
Amazon SNS service/amazonsns aws/aws-sdk-go-v2 ✔️
Bark service/bark - ✔️
DingTalk service/dinding blinkbean/dingtalk ✔️
Discord service/discord bwmarrin/discordgo ✔️
Email service/mail jordan-wright/email ✔️
Firebase Cloud Messaging service/fcm appleboy/go-fcm ✔️
Google Chat service/googlechat googleapis/google-api-go-client ✔️
HTTP service/http - ✔️
Lark service/lark go-lark/lark ✔️
Line service/line line/line-bot-sdk-go ✔️
Line Notify service/line utahta/go-linenotify ✔️
Mailgun service/mailgun mailgun/mailgun-go ✔️
Matrix service/matrix mautrix/go ✔️
Microsoft Teams service/msteams atc0005/go-teams-notify ✔️
PagerDuty service/pagerduty PagerDuty/go-pagerduty ✔️
Plivo service/plivo plivo/plivo-go ✔️
Pushover service/pushover gregdel/pushover ✔️
Pushbullet service/pushbullet cschomburg/go-pushbullet ✔️
Reddit service/reddit vartanbeno/go-reddit ✔️
RocketChat service/rocketchat RocketChat/Rocket.Chat.Go.SDK ✔️
SendGrid service/sendgrid sendgrid/sendgrid-go ✔️
Slack service/slack slack-go/slack ✔️
Syslog service/syslog log/syslog ✔️
Telegram service/telegram OvyFlash/telegram-bot-api ✔️
TextMagic service/textmagic textmagic/textmagic-rest-go-v2 ✔️
Twilio service/twilio kevinburke/twilio-go ✔️
Twitter service/twitter drswork/go-twitter ✔️
Viber service/viber mileusna/viber ✔️
WeChat service/wechat silenceper/wechat ✔️
Webpush Notification service/webpush SherClockHolmes/webpush-go ✔️
WhatsApp service/whatsapp Rhymen/go-whatsapp

Special Thanks

Original project

Notify was originally created by @nikoksr. This project is based on the original nikoksr/notify repository and is grateful for the foundation built by its original author and contributors.

Maintainers

Logo

The logo was made by the amazing MariaLetta.

About

A dead simple Go library for sending notifications to various messaging services.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages