Skip to content

Commit

Permalink
Merge pull request #28 from kkdai/linebot-sdk8
Browse files Browse the repository at this point in the history
chore: update line-bot-sdk-go to version 8.2.0 and replace linebot wi…
  • Loading branch information
kkdai committed Dec 28, 2023
2 parents 618162c + f442637 commit c582448
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 14 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ module github.com/kkdai/LineBotTemplate
// +heroku goVersion go1.21
go 1.21

require github.com/line/line-bot-sdk-go/v7 v7.21.0
require github.com/line/line-bot-sdk-go/v8 v8.2.0
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
github.com/line/line-bot-sdk-go/v7 v7.21.0 h1:eeYMuAwaDV5DZNTRqDipNhzjT51HwEcM1PRPG+cqh4Y=
github.com/line/line-bot-sdk-go/v7 v7.21.0/go.mod h1:idpoxOZgtSd8JyhctMMpwg5LNgRAIL/QIxa5S0DXcMg=
github.com/line/line-bot-sdk-go/v8 v8.2.0 h1:IFqwd3pKbA+o3pwV3nzamtWHt7n+ijSH3t/D8Q/vVQ0=
github.com/line/line-bot-sdk-go/v8 v8.2.0/go.mod h1:n9Ly8OHM6xCeQktLzRpQHe/yBda95kFgmQUefUQeFCs=
33 changes: 22 additions & 11 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ import (
"os"
"strconv"

"github.com/line/line-bot-sdk-go/v7/linebot"
"github.com/line/line-bot-sdk-go/v8/linebot"
"github.com/line/line-bot-sdk-go/v8/linebot/webhook"
)

var bot *linebot.Client
Expand All @@ -35,8 +36,7 @@ func main() {
}

func callbackHandler(w http.ResponseWriter, r *http.Request) {
events, err := bot.ParseRequest(r)

cb, err := webhook.ParseRequest(os.Getenv("ChannelSecret"), r)
if err != nil {
if err == linebot.ErrInvalidSignature {
w.WriteHeader(400)
Expand All @@ -46,34 +46,45 @@ func callbackHandler(w http.ResponseWriter, r *http.Request) {
return
}

for _, event := range events {
if event.Type == linebot.EventTypeMessage {
switch message := event.Message.(type) {
for _, event := range cb.Events {
log.Printf("Got event %v", event)
switch e := event.(type) {
case webhook.MessageEvent:
switch message := e.Message.(type) {
// Handle only on text message
case *linebot.TextMessage:
case webhook.TextMessageContent:
// GetMessageQuota: Get how many remain free tier push message quota you still have this month. (maximum 500)
quota, err := bot.GetMessageQuota().Do()
if err != nil {
log.Println("Quota err:", err)
}
// message.ID: Msg unique ID
// message.Text: Msg text
if _, err = bot.ReplyMessage(event.ReplyToken, linebot.NewTextMessage("msg ID:"+message.ID+":"+"Get:"+message.Text+" , \n OK! remain message:"+strconv.FormatInt(quota.Value, 10))).Do(); err != nil {
if _, err = bot.ReplyMessage(e.ReplyToken, linebot.NewTextMessage("msg ID:"+message.Id+":"+"Get:"+message.Text+" , \n OK! remain message:"+strconv.FormatInt(quota.Value, 10))).Do(); err != nil {
log.Print(err)
}

// Handle only on Sticker message
case *linebot.StickerMessage:
case webhook.StickerMessageContent:
var kw string
for _, k := range message.Keywords {
kw = kw + "," + k
}

outStickerResult := fmt.Sprintf("收到貼圖訊息: %s, pkg: %s kw: %s text: %s", message.StickerID, message.PackageID, kw, message.Text)
if _, err = bot.ReplyMessage(event.ReplyToken, linebot.NewTextMessage(outStickerResult)).Do(); err != nil {
outStickerResult := fmt.Sprintf("收到貼圖訊息: %s, pkg: %s kw: %s text: %s", message.StickerId, message.PackageId, kw, message.Text)
if _, err = bot.ReplyMessage(e.ReplyToken, linebot.NewTextMessage(outStickerResult)).Do(); err != nil {
log.Print(err)
}
default:
log.Printf("Unknown message: %v", message)
}
case webhook.FollowEvent:
log.Printf("message: Got followed event")
case webhook.PostbackEvent:
data := e.Postback.Data
log.Printf("Unknown message: Got postback: " + data)
case webhook.BeaconEvent:
log.Printf("Got beacon: " + e.Beacon.Hwid)
}
}
}

0 comments on commit c582448

Please sign in to comment.