建立頻道
登入 LINE Developers 網頁,選擇 Messaging API 產品,建立一個 Channel。
建立專案
新增專案。
1 2
| mkdir line-chat cd line-chat
|
啟用 Go Modules。
下載 linebot
套件。
1
| go get github.com/line/line-bot-sdk-go/linebot
|
建立 main.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/joho/godotenv/autoload" "github.com/line/line-bot-sdk-go/linebot" "log" "net/http" "os" )
var ( client *linebot.Client err error )
func main() { client, err = linebot.New(os.Getenv("CHANNEL_SECRET"), os.Getenv("CHANNEL_ACCESS_TOKEN"))
if err != nil { log.Println(err.Error()) }
http.HandleFunc("/callback", callbackHandler)
log.Fatal(http.ListenAndServe(":84", nil)) }
func callbackHandler(w http.ResponseWriter, r *http.Request) { events, err := client.ParseRequest(r)
if err != nil { if err == linebot.ErrInvalidSignature { w.WriteHeader(400) } else { w.WriteHeader(500) }
return }
for _, event := range events { if event.Type == linebot.EventTypeMessage { switch message := event.Message.(type) { case *linebot.TextMessage: if _, err = client.ReplyMessage(event.ReplyToken, linebot.NewTextMessage(message.Text)).Do(); err != nil { log.Println(err.Error()) } } } } }
|
新增 .env
檔:
1 2
| CHANNEL_SECRET= CHANNEL_ACCESS_TOKEN=
|
CHANNEL_SECRET
環境變數填入 Basic settings
頁面的 Channel secret
。
CHANNEL_ACCESS_TOKEN
環境變數填入 Messaging API
頁面的 Channel access token
。
最後,將專案部署到主機。
設定
- 進到
Messaging API
頁面,設置應用程式的「Webhook URL」。
1
| https://line-chat.xxx.com/callback
|
點選 Verify
按鈕。
啟用 webhook。
進到 LINE Official Account Manager
頁面的「回應設定」,停用「自動回應訊息」。
聊天
進到「主頁」,點選「加入好友」,使用行動條碼加入好友。
程式碼
參考資料