package main import ( "fmt" "strings" "github.com/line/line-bot-sdk-go/v7/linebot" ) func ApiSelectSales(event *linebot.Event) { args := strings.Split(event.Postback.Data, "&") data := strings.TrimPrefix(args[0], "sales=") pname := strings.TrimPrefix(args[1], "purchase=") sales := &Sales{} DB.First(sales, "name = ?", data) tmp, _ := linebot.UnmarshalFlexMessageJSON([]byte( fmt.Sprintf(greet, sales.Img, sales.Name, "很高興為您服務!"), )) msg := linebot.NewFlexMessage("很高興為您服務!", tmp) sticker := linebot.NewStickerMessage("1070", "17852") SendMessage(event.ReplyToken, event.Source.UserID, msg, sticker) prod := &Product{} DB.First(prod, "name = ?", pname) go func() { // sales called and start proccess SendMessage("", event.Source.UserID) // proccessing //proccess complete }() } var greet string = ` { "type": "bubble", "hero": { "type": "image", "url": "%v", "size": "full" }, "body": { "type": "box", "layout": "vertical", "contents": [ { "type": "text", "text": "你好! 我是%v", "weight": "bold", "size": "xl" }, { "type": "text", "text": "%v" } ] } } `