Skip to content

mingrammer/line-bot-sdk-go

 
 

Repository files navigation

line-bot-sdk-go

Build Status GoDoc Go Report Card

Go SDK for the LINE Messaging API

About LINE Messaging API

See the official API documentation for more information.

English: https://developers.line.me/en/docs/messaging-api/reference/
Japanese: https://developers.line.me/ja/docs/messaging-api/reference/

Installation

$ go get github.com/line/line-bot-sdk-go/linebot

Configuration

import (
	"github.com/line/line-bot-sdk-go/linebot"
)

func main() {
	bot, err := linebot.New("<channel secret>", "<channel access token>")
	...
}

Configuration with http.Client

client := &http.Client{}
bot, err := linebot.New("<channel secret>", "<channel accsss token>", linebot.WithHTTPClient(client))
...

How to start

The LINE Messaging API uses the JSON data format. ParseRequest() will help you to parse the *http.Request content and return a slice of Pointer point to Event Object.

events, err := bot.ParseRequest(req)
if err != nil {
	// Do something when something bad happened.
}

The LINE Messaging API defines 7 types of event - EventTypeMessage, EventTypeFollow, EventTypeUnfollow, EventTypeJoin, EventTypeLeave, EventTypePostback, EventTypeBeacon. You can check the event type by using event.Type

for _, event := range events {
	if event.Type == linebot.EventTypeMessage {
		// Do Something...
	}
}

Receiver

To send a message to a user, group, or room, you need either an ID

userID := event.Source.UserID
groupID := event.Source.GroupID
RoomID := event.Source.RoomID

or a reply token.

replyToken := event.ReplyToken

Create message

The LINE Messaging API provides various types of message. To create a message, use New<Type>Message().

leftBtn := linebot.NewMessageAction("left", "left clicked")
rightBtn := linebot.NewMessageAction("right", "right clicked")

template := linebot.NewConfirmTemplate("Hello World", leftBtn, rightBtn)

message := linebot.NewTemplateMessage("Sorry :(, please update your app.", template)

Send message

With an ID, you can send message using PushMessage()

var messages []linebot.Message

// append some message to messages

_, err := bot.PushMessage(ID, messages...).Do()
if err != nil {
	// Do something when some bad happened
}

With a reply token, you can reply to messages using ReplyMessage()

var messages []linebot.Message

// append some message to messages

_, err := bot.ReplyMessage(replyToken, messages...).Do()
if err != nil {
	// Do something when some bad happened
}

Requirements

This library requires Go 1.6 or later.

LICENSE

See LICENSE.txt

About

Go SDK for the LINE Messaging API

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%