All Projects → maciekmm → Messenger Platform Go Sdk

maciekmm / Messenger Platform Go Sdk

Licence: mit
✉️ A GO SDK for Facebook's messenger-platform: https://developers.facebook.com/docs/messenger-platform

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Messenger Platform Go Sdk

Rubotnik
"Bot-end" Ruby framework to quickly build and launch a Facebook Messenger chatbot
Stars: ✭ 191 (+81.9%)
Mutual labels:  messenger, messenger-platform
Wire Ios
📱 Wire for iOS (iPhone and iPad)
Stars: ✭ 3,079 (+2832.38%)
Mutual labels:  messenger, messenger-platform
Messenger4j
A Java library for building Chatbots on the Facebook Messenger Platform - easy and fast.
Stars: ✭ 199 (+89.52%)
Mutual labels:  messenger, messenger-platform
Jquery.fbmessenger
Fake Facebook Messenger interactions on an iPhone with a simple jQuery plugin!
Stars: ✭ 130 (+23.81%)
Mutual labels:  messenger, messenger-platform
Fbbot
Minimal framework/SDK for facebook messenger bots. BYOS (Bring Your Own Server)
Stars: ✭ 46 (-56.19%)
Mutual labels:  sdk, messenger-platform
React Messenger Customer Chat
React component for messenger customer chat plugin
Stars: ✭ 221 (+110.48%)
Mutual labels:  messenger, messenger-platform
facebook-send-api-emulator
Facebook Messenger Emulator & Facebook Send API Emulator functionality allowing you to test web hooks on developer's machine.
Stars: ✭ 24 (-77.14%)
Mutual labels:  messenger, messenger-platform
Pymessager
Python API to develop chatbot on Facebook Messenger Platform
Stars: ✭ 580 (+452.38%)
Mutual labels:  sdk, messenger
Chat Sdk Ios
Chat SDK iOS - Open Source Mobile Messenger
Stars: ✭ 813 (+674.29%)
Mutual labels:  sdk, messenger
Applozic Android Sdk
Android Real Time Chat & Messaging SDK
Stars: ✭ 611 (+481.9%)
Mutual labels:  messenger, messenger-platform
Chaskiq
A full featured Live Chat, Support & Marketing platform, alternative to Intercom, Drift, Crisp, etc ...
Stars: ✭ 1,263 (+1102.86%)
Mutual labels:  messenger, messenger-platform
Chatblocks
Declarative Messenger chatbot framework
Stars: ✭ 48 (-54.29%)
Mutual labels:  messenger, messenger-platform
Chat Sdk Android
Chat SDK Android - Open Source Mobile Messenger
Stars: ✭ 1,496 (+1324.76%)
Mutual labels:  sdk, messenger
Quickblox Javascript Sdk
JavaScript SDK of QuickBlox cloud backend platform
Stars: ✭ 98 (-6.67%)
Mutual labels:  sdk
Contentful.php
Official PHP SDK for the Content Delivery API
Stars: ✭ 101 (-3.81%)
Mutual labels:  sdk
Applicationinsights Php
Azure Application Insights SDK for PHP
Stars: ✭ 98 (-6.67%)
Mutual labels:  sdk
Go Tfe
Terraform Cloud/Enterprise API Client/SDK in Golang
Stars: ✭ 98 (-6.67%)
Mutual labels:  sdk
Flickr Sdk
Almost certainly the best Flickr API client in the world for node and the browser
Stars: ✭ 104 (-0.95%)
Mutual labels:  sdk
Invest Openapi Go Sdk
Stars: ✭ 101 (-3.81%)
Mutual labels:  sdk
Opentok Ruby Sdk
OpenTok Server SDK for Ruby
Stars: ✭ 97 (-7.62%)
Mutual labels:  sdk

Messenger Platform Go SDK

Build Status Coverage Status

A Go SDK for the Facebook Messenger Platform.

Installation

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.

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.

//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
}

Sending messages

Example

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) {
	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)
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].