abhinavdahiya / go-messenger-bot

Golang bindings for the Messenger Bot API
https://godoc.org/github.com/abhinavdahiya/go-messenger-bot
MIT License
52 stars 10 forks source link

Golang bindings for the Messenger Bot API

The scope of this project is just to provide a wrapper around the API without any additional features.

Example

This is a very simple bot that just displays any gotten updates, then replies it to it.

package main

import (
    "log"
    "net/http"
    "github.com/abhinavdahiya/go-messenger-bot"
)

func main() {
    bot := mbotapi.NewBotAPI("ACCESS_TOKEN", "VERIFY_TOKEN")

    callbacks, mux := bot.SetWebhook("/webhook")
    go http.ListenAndServeTLS("0.0.0.0:8443", "cert.pem", "key.pem", mux)

    for callback := range callbacks {
        log.Printf("[%#v] %s", callback.Sender, callback.Message.Text)

        msg := mbotapi.NewMessage(callback.Message.Text)
        bot.Send(callback.Sender, msg, mbotapi.RegularNotif)
    }
}

Facebook messenger webhook needs a certificate certified by known CA, Now that Let's Encrypt has entered public beta, you may wish to generate your free TLS certificate there.

Inspiration

Messenger takes design cues from: