https://github.com/maciekmm/messenger-platform-go-sdk
:envelope: A GO SDK for Facebook's messenger-platform: https://developers.facebook.com/docs/messenger-platform
https://github.com/maciekmm/messenger-platform-go-sdk
go messenger messenger-platform sdk
Last synced: about 1 month ago
JSON representation
:envelope: A GO SDK for Facebook's messenger-platform: https://developers.facebook.com/docs/messenger-platform
- Host: GitHub
- URL: https://github.com/maciekmm/messenger-platform-go-sdk
- Owner: maciekmm
- License: mit
- Created: 2016-04-16T09:17:42.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2018-05-06T13:15:40.000Z (about 7 years ago)
- Last Synced: 2025-04-14T03:15:01.030Z (about 1 month ago)
- Topics: go, messenger, messenger-platform, sdk
- Language: Go
- Homepage:
- Size: 77.1 KB
- Stars: 109
- Watchers: 10
- Forks: 27
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Messenger Platform Go SDK
=====[](https://travis-ci.org/maciekmm/messenger-platform-go-sdk)
[](https://coveralls.io/github/maciekmm/messenger-platform-go-sdk?branch=master)A Go SDK for the [Facebook Messenger Platform](https://developers.facebook.com/docs/messenger-platform).
## Installation
```bash
go get gopkg.in/maciekmm/messenger-platform-go-sdk.v4
```## Usage
The main package has been named `messenger` for convenience.
Your first step is to create `Messenger` instance.
```go
import "gopkg.in/maciekmm/messenger-platform-go-sdk.v4"//...
messenger := &messenger.Messenger {
VerifyToken: "VERIFY_TOKEN/optional",
AppSecret: "APP_SECRET/optional",
AccessToken: "PAGE_ACCESS_TOKEN",
Debug: messenger.DebugAll, //All,Info,Warning
}
```### Parameters
* `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 under `Messenger` tab.
* `Debug` is used for setting debug mode type as described on https://developers.facebook.com/docs/graph-api/using-graph-api#debugging. Optional.The next step is to hook up the handler to your HTTP server.
```go
//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.
```go
messenger.MessageReceived = MessageReceived//...
func MessageReceived(event messenger.Event, opts messenger.MessageOpts, msg messenger.ReceivedMessage) {
//do stuff
}
```### Sending messages
## Example
Check more examples in [examples folder.](https://github.com/maciekmm/messenger-platform-go-sdk/tree/master/examples)
```go
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) {
profile, err := mess.GetProfile(opts.Sender.ID)
if err != nil {
fmt.Println(err)
return
}
resp, err := mess.SendSimpleMessage(opts.Sender.ID, fmt.Sprintf("Hello, %s %s, %s", profile.FirstName, profile.LastName, msg.Text))
if err != nil {
fmt.Println(err)
}
fmt.Printf("%+v", resp)
}
```