A Go SDK for the Facebook Messenger Platform. Note: Work in Progress, not suitable for production environment yet! Be careful!
go get gopkg.in/maciekmm/messenger-platform-go-sdk.v1
The main package has been named messenger
for convenience.
Your first step is to create Messenger
instance.
import "gopkg.in/maciekmm/messenger-platform-go-sdk.v1"
//...
messenger := &messenger.Messenger {
VerifyToken: "VERIFY_TOKEN/optional",
AppSecret: "APP_SECRET/optional",
AccessToken: "PAGE_ACCESS_TOKEN",
PageID: "PAGE_ID/optional",
}
VerifyToken
is the token needed for a verification process facebook performs. It's only required once. Optional.AppSecret
is the Application Secret token. It's used for message integrity check. Optional.AccessToken
is required to send messages. You can find this token in your app developer dashboard underMessenger
tab.PageID
is required for setting welcome message. Optional.
The next step is to hook up the handler to your HTTP server.
//hook up
http.HandleFunc("/webhook", messenger.Handler)
//start the server
http.ListenAndServe(":5646", nil)
The next step is to subscribe to an event, to do that you have to hook up your own handler.
messenger.MessageReceived = MessageReceived
//...
func MessageReceived(event messenger.Event, opts messenger.MessageOpts, msg messenger.ReceivedMessage) {
//do stuff
}
Check more examples in examples folder.
var mess = &messenger.Messenger{
AccessToken: "ACCESS_TOKEN",
}
func main() {
mess.MessageReceived = MessageReceived
http.HandleFunc("/webhook", mess.Handler)
log.Fatal(http.ListenAndServe(":5646", nil))
}
func MessageReceived(event messenger.Event, opts messenger.MessageOpts, msg messenger.ReceivedMessage) {
resp, err := mess.SendMessage(messenger.MessageQuery{Recipient: messenger.Recipient{ID: opts.Sender.ID}, Message: messenger.Message{
Text: msg.Text,
}})
if err != nil {
fmt.Println(err)
}
fmt.Printf("%+v", resp)
}