使用Golang, Gin及MongoDB的入門練習
實作串接Linebot,以官方帳號收發訊息,並將訊息存在MongoDB
專案使用項目:
使用docker image:
- golang:alpin as base image
- mongo:4.4
.
├── Config
│ └── config.go
├── controllers
│ └── message.go
├── database
│ └── mongo.go
├── models
│ └── message.go
├── routes
│ ├── index.go
│ └── message.go
├── utils
│ └── linebot.go
├── validators
│ ├── message.go
│ └── register.go
├── .env.example
├── .gitignore
├── docker-compose.yml
├── Dockerfile
├── go.mod
├── go.sum
├── main.go
└── README.md
- Step1. 建立環境變數檔案
cp .env.example .env
- Step2. 修改.env參數內容,包含MongoDB連線參數及Linebot相關密鑰設定
DB_CONNECTION = mongodb
DB_HOST = mongo
DB_PORT = 27017
DB_USERNAME = admin
DB_PASS = admin
LINE_CHANNEL_ID =
LINE_CHANNEL_SECRET =
LINE_CHANNEL_ACCESS =
-
Step3. 登入Line Developers
-
Step4. 點擊Messaging API進行官方帳號及Webhook設定 將URL設定到Webhook
PS. local端測試使用Ngrok
https://{some domain}/messages/receive
docker-compose up -d --build
- 連接測試
curl https://{some domain}
- 取得官方帳號訊息列表
[GET] https://{some domain}/user/{Line official account user id}/messages
- 利用官方帳號推送訊息
[POST] https://{some domain}/messages/push
# Content-Type: application/json
# Body parameters
{
"UserID": "Line official account user id",
"Content": "some message you want to push"
}