2021-01-26 11:45:14 +02:00
< div align = "center" >
< img
width=40%
src="assets/gopher-letter.svg"
alt="notify logo"
/>
![GitHub tag (latest SemVer) ](https://img.shields.io/github/v/tag/nikoksr/notify?color=success&label=version&sort=semver )
[![Go Report Card ](https://goreportcard.com/badge/github.com/nikoksr/notify )](https://goreportcard.com/report/github.com/nikoksr/notify)
2021-01-26 11:54:06 +02:00
[![Codacy Badge ](https://app.codacy.com/project/badge/Grade/37fdff3c275c4a72a3a061f2d0ec5553 )](https://www.codacy.com/gh/nikoksr/notify/dashboard?utm_source=github.com& utm_medium=referral& utm_content=nikoksr/notify& utm_campaign=Badge_Grade)
2021-01-26 11:45:14 +02:00
[![Maintainability ](https://api.codeclimate.com/v1/badges/b3afd7bf115341995077/maintainability )](https://codeclimate.com/github/nikoksr/notify/maintainability)
2021-02-01 08:50:37 +02:00
[![FOSSA Status ](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fnikoksr%2Fnotify.svg?type=shield )](https://app.fossa.com/projects/git%2Bgithub.com%2Fnikoksr%2Fnotify?ref=badge_shield)
2021-01-26 11:45:14 +02:00
[![go.dev reference ](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat )](https://pkg.go.dev/github.com/nikoksr/notify)
< / div >
2021-01-26 12:39:02 +02:00
> <p align="center">A dead simple Go library for sending notifications to various messaging services.</p>
2021-01-26 11:45:14 +02:00
< h1 > < / h1 >
## About <a id="about"></a>
2021-02-12 20:20:07 +02:00
*Notify* was born out of my own need to have my API servers running in production be able to notify me when critical errors occur. Of course, _Notify_ can be used for any other purpose as well. The library is kept as simple as possible for quick integration and ease of use.
2021-01-26 11:45:14 +02:00
## Disclaimer <a id="disclaimer"></a>
Any misuse of this library is your own liability and responsibility and cannot be attributed to the authors of this library. See [license ](LICENSE ) for more.
Spamming through the use of this library **may get you permanently banned** on most supported platforms.
## Install <a id="install"></a>
2021-01-25 06:05:59 +02:00
```sh
go get -u github.com/nikoksr/notify
```
2021-01-26 11:45:14 +02:00
## Example usage <a id="usage"></a>
2021-01-25 06:05:59 +02:00
```go
2021-02-12 20:20:07 +02:00
// Create a telegram service. Ignoring error for demo simplicity.
2021-01-25 06:05:59 +02:00
telegramService, _ := telegram.New("your_telegram_api_token")
// Passing a telegram chat id as receiver for our messages.
2021-02-12 20:20:07 +02:00
// Basically where should our message be sent?
telegramService.AddReceivers(-1234567890)
2021-01-25 06:05:59 +02:00
2021-05-27 12:46:11 +02:00
// Create our notifications distributor.
notifier := notify.New()
2021-01-25 06:05:59 +02:00
// 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.
2021-02-12 20:20:07 +02:00
// Inspired by http middlewares used in higher level libraries.
2021-02-06 11:20:21 +02:00
notifier.UseServices(telegramService)
2021-01-25 06:05:59 +02:00
2021-02-12 20:20:07 +02:00
// Send a test message.
2021-01-25 06:16:08 +02:00
_ = notifier.Send(
2021-02-18 04:33:30 +02:00
context.Background(),
2021-02-12 20:20:07 +02:00
"Subject/Title",
2021-02-18 04:33:30 +02:00
"The actual message - Hello, you awesome gophers! :)",
2021-01-25 06:05:59 +02:00
)
```
2021-01-26 12:31:14 +02:00
## Supported services <a id="supported_services"></a>
2021-02-18 04:33:30 +02:00
> Please create feature requests for missing services (see #3 for example)
2021-02-16 01:11:23 +02:00
- *Amazon SES*
2021-01-26 12:31:14 +02:00
- *Discord*
- *Email*
2021-02-23 12:19:07 +02:00
- *Line*
2021-02-10 19:23:34 +02:00
- *Mailgun*
2021-01-29 20:26:10 +02:00
- *Microsoft Teams*
2021-02-06 11:00:42 +02:00
- *Plivo*
- *Pushbullet*
2021-03-10 19:37:32 +02:00
- *RocketChat*
2021-02-10 17:22:58 +02:00
- *SendGrid*
2021-01-27 02:09:54 +02:00
- *Slack*
2021-01-29 20:26:10 +02:00
- *Telegram*
2021-05-06 16:53:59 +02:00
- *TextMagic*
2021-02-06 11:00:42 +02:00
- *Twitter*
2021-03-21 18:54:10 +02:00
- *WeChat*
2021-05-27 12:46:46 +02:00
- *WhatsApp*
2021-01-26 12:31:14 +02:00
2021-01-26 11:45:14 +02:00
## Credits <a id="credits"></a>
2021-01-25 06:05:59 +02:00
2021-02-16 01:11:23 +02:00
- Amazon SES support: [aws/aws-sdk-go ](https://github.com/aws/aws-sdk-go )
2021-01-26 12:31:14 +02:00
- Discord support: [bwmarrin/discordgo ](https://github.com/bwmarrin/discordgo )
- Email support: [jordan-wright/email ](https://github.com/jordan-wright/email )
2021-02-23 12:19:07 +02:00
- Line support: [line/line-bot-sdk-go ](https://github.com/line/line-bot-sdk-go )
2021-02-12 20:20:07 +02:00
- Logo: [MariaLetta/free-gophers-pack ](https://github.com/MariaLetta/free-gophers-pack )
- Mailgun support: [mailgun/mailgun-go ](https://github.com/mailgun/mailgun-go )
2021-01-29 20:26:10 +02:00
- Microsoft Teams support: [atc0005/go-teams-notify ](https://github.com/atc0005/go-teams-notify )
2021-02-12 20:20:07 +02:00
- Plivo support: [plivo/plivo-go ](https://github.com/plivo/plivo-go )
- Pushbullet support: [cschomburg/go-pushbullet ](https://github.com/cschomburg/go-pushbullet )
2021-03-10 19:37:32 +02:00
- RocketChat Support: [RocketChat/Rocket.Chat.Go.SDK ](https://github.com/RocketChat/Rocket.Chat.Go.SDK )
2021-02-12 20:20:07 +02:00
- SendGrid support: [sendgrid/sendgrid-go ](https://github.com/sendgrid/sendgrid-go )
2021-01-27 02:09:54 +02:00
- Slack support: [slack-go/slack ](https://github.com/slack-go/slack )
2021-01-29 20:26:10 +02:00
- Telegram support: [go-telegram-bot-api/telegram-bot-api ](https://github.com/go-telegram-bot-api/telegram-bot-api )
2021-05-06 16:53:59 +02:00
- TextMagic support: [textmagic/textmagic-rest-go-v2 ](https://github.com/textmagic/textmagic-rest-go-v2 )
2021-02-12 20:20:07 +02:00
- Twitter: [dghubble/go-twitter ](https://github.com/dghubble/go-twitter )
2021-03-21 18:54:10 +02:00
- WeChat: [silenceper/wechat ](https://github.com/silenceper/wechat )
2021-04-15 09:53:41 +02:00
- WhatsApp: [Rhymen/go-whatsapp ](https://github.com/Rhymen/go-whatsapp )
2021-01-25 06:05:59 +02:00
2021-01-26 11:45:14 +02:00
## Author <a id="author"></a>
2021-01-25 06:05:59 +02:00
2021-01-26 11:45:14 +02:00
**Niko Köser**
2021-01-25 06:05:59 +02:00
* Twitter: [@nikoksr ](https://twitter.com/nikoksr )
* Github: [@nikoksr ](https://github.com/nikoksr )
2021-01-26 11:45:14 +02:00
## Contributing <a id="contributing"></a>
2021-01-25 06:05:59 +02:00
Contributions, issues and feature requests are welcome!< br /> Feel free to check [issues page ](https://github.com/nikoksr/notify/issues ). You can also take a look at the [contributing guide ](https://github.com/nikoksr/notify/blob/main/CONTRIBUTING.md ).
2021-01-26 11:45:14 +02:00
## Show your support <a id="support"></a>
2021-01-25 06:05:59 +02:00
2021-02-12 20:20:07 +02:00
Give a ⭐️ if you like this project!
2021-01-25 06:05:59 +02:00
2021-02-01 08:50:37 +02:00
## License <a id="license"></a>
[![FOSSA Status ](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fnikoksr%2Fnotify.svg?type=large )](https://app.fossa.com/projects/git%2Bgithub.com%2Fnikoksr%2Fnotify?ref=badge_large)