/
linebot.go
54 lines (45 loc) · 1.22 KB
/
linebot.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package main
import (
"github.com/line/line-bot-sdk-go/linebot"
"github.com/urfave/cli"
)
type lbClient struct {
bot *linebot.Client
}
var linebotCommand = cli.Command{
Name: "linebot",
Usage: "linebot",
Action: linebotCmd,
}
func linebotCmd(ctx *cli.Context) error {
c, err := newLinebotClient()
if err != nil {
return err
}
return c.pushMessage()
}
func newLinebotClient() (lbClient, error) {
// var channelSecret string = "XXXXXX"
// var channelToken string = "XXXXXX"
bot, err := linebot.New(channelSecret, channelToken)
if err != nil {
return lbClient{}, err
}
return lbClient{bot: bot}, nil
}
// cf. https://github.com/line/line-bot-sdk-go#create-message
func (c *lbClient) pushMessage() error {
var messages []linebot.Message
leftBtn := linebot.NewMessageTemplateAction("left", "left clicked")
rightBtn := linebot.NewMessageTemplateAction("right", "right clicked")
template := linebot.NewConfirmTemplate("Hello World", leftBtn, rightBtn)
message := linebot.NewTemplateMessage("Sorry :(, please update your app.", template)
messages = append(messages, message)
// var userID string = "XXXXXX"
bot := c.bot
_, err := bot.PushMessage(userID, messages...).Do()
if err != nil {
return err
}
return nil
}