An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

        

Messenger Platform Go SDK
=====

[![Build Status](https://travis-ci.org/maciekmm/messenger-platform-go-sdk.svg?branch=master)](https://travis-ci.org/maciekmm/messenger-platform-go-sdk)
[![Coverage Status](https://coveralls.io/repos/github/maciekmm/messenger-platform-go-sdk/badge.svg?branch=master)](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)
}
```