(in beta but works in production :) )
This project basicly was forked from github.com/appleboy/go-fcm.
- Go modules with semantic versioning
- valyala/fasthttp client instead of net/http
- mailru/easyjson client instead of encoding/json
- Send() returns original body ([]byte) too (if FCM answer changed you can parse by yourself and not wait for package update)
- Some optimizations
Golang client library for Firebase Cloud Messaging. Implemented only HTTP client.
More information on Firebase Cloud Messaging
- Send messages to a topic
- Send messages to a device list
- Supports condition attribute (fcm only)
To install gofcm, use go get
:
go get github.com/riftbit/gofcm
Here is a simple example illustrating how to use FCM library:
package main
import (
"log"
"github.com/riftbit/gofcm"
)
func main() {
// Create the message to be sent.
msg := &fcm.Message{
To: "sample_device_token",
Data: map[string]interface{}{
"foo": "bar",
},
}
// Create a FCM client to send the message.
client, err := fcm.NewClient("sample_api_key")
if err != nil {
log.Fatalln(err)
}
// Send the message and receive the response without retries.
response, body, err := client.Send(msg)
if err != nil {
log.Fatalln(err)
}
log.Printf("%#v\n", response)
log.Printf("%#v\n", body)
}