2020年2月22日 星期六

使用 Gin / Laravel 建立 Line Bot


下載即用,快拿去。
雙版本:
Gin ( Golang )
Laravel ( PHP )

快速建立 屬於自已的 Line Bot 簡易 購物機器人
( 使用 Gin / Laravel + MySQL )

1. 支持 Docker 運行 (也支持 本機直接執行)。
2. 馬上下載,馬上可用,只需設定好你的 Line Bot 相關設定。
3. 匯入我提供的資料庫資料。
4. 一支簡單的 Line 簡易購物 Bot 就完成了。
5. Enjoy。

開放原始碼:
https://github.com/wangchenshu/gin-group-buy
https://github.com/wangchenshu/laravel-group-buy

拿去用,真的別客氣。

成品 Demo 如下:
咕嚕buy

LINE:
加入好友 ID: @808wnwnn
加入好友傳送門 測試: https://line.me/R/ti/p/%40808wnwnn


2020年1月4日 星期六

我的 Go reflect 筆記


package main

import (
"fmt"
"reflect"
)

type S1 struct {
Name string
Age int
}

type S2 struct {
Name string
Info string
}

type S3 struct {
U string
V string
}

type S4 struct {
K string
V string
}

func main() {
s1 := S1{
Name: "s1: oooo",
Age: 10,
}

s2 := S2{
Name: "s2: test",
Info: "s2: qqq",
}

s3 := S3{
U: "s3: 1",
V: "s3: A",
}

fmt.Println("before change: ")
fmt.Println(s1)
testReflect(&s1)
fmt.Println("after change: ")
fmt.Println(s1)
fmt.Println("======")

fmt.Println("before change: ")
fmt.Println(s2)
testReflect(&s2)
fmt.Println("after change: ")
fmt.Println(s2)
fmt.Println("======")

fmt.Println("before change: ")
fmt.Println(s3)
rType := reflect.TypeOf(s3)
rValue := reflect.ValueOf(&s3)

for i := 0; i < rType.NumField(); i++ {
rValue.Elem().Field(i).SetString(fmt.Sprintf("s3: %d", i))
}
fmt.Println("after change: ")
fmt.Println(s3)
fmt.Println("======")

s4 := testReflect(S4{
K: "s4: a000",
V: "s4: p777",
})
fmt.Println(s4)

s4Ptr := testReflect(&S4{
K: "q111",
V: "q222",
})
fmt.Println(s4Ptr)
}

func testReflect(i interface{}) interface{} {
rValueOf := reflect.ValueOf(i)
ret := i

switch i.(type) {
case *S1:
ret := rValueOf.Interface().(*S1)
ret.Name = "*s1: rrrr"
ret.Age = 19
case *S2:
ret := rValueOf.Interface().(*S2)
ret.Name = "*s2: 222"
ret.Info = "*s2: good"
case S3:
s3 := reflect.New(reflect.TypeOf(i))
newS3 := s3.Elem().Interface().(S3)
newS3.U = "s3: test"
newS3.V = "s3: 1234"
return newS3
case S4:
rValue := reflect.ValueOf(&i)
s4 := rValue.Elem().Interface().(S4)
s4.K = "s4: 0"
s4.V = "s4: 1"
return s4
case *S4:
rValue := reflect.ValueOf(i)
for i := 0; i < rValue.Elem().NumField(); i++ {
rValue.Elem().Field(i).SetString(fmt.Sprintf("*s4: %d", i))
}
return rValue
}

return ret
}

2019年12月29日 星期日

好語 Go - 一個使用 Golang 寫的 Line Bot


原始碼: https://github.com/wangchenshu/gin-eco

# 禪念 好語 Go
> 好語 Go Line Bot 2.1,
> 為了給大家更好的用戶體驗,
> 持續改善回應的穩定度,
> 邀請大家一起來使用,
> 無間斷提供好語給各位。
>
> 希望大家多多支持禪念,
> 並把好語散播給更多的人,
> 禪念感謝大家。

## 好語 Go 2.1 版
### 提供以下四種語:
* 好語
* 自在語
* 靜思語
* 勵志語

## 歡迎關注
### FB
* FB 請搜尋: 禪念
* [禪念粉絲頁](https://www.facebook.com/%E7%A6%AA%E5%BF%B5-1062013710643908/)
* [FB Messenger](http://m.me/1062013710643908)

### LINE
* 加入好友 ID: @748eeivc
* [加入好友傳送門](https://line.me/R/ti/p/%40748eeivc)

2019年11月30日 星期六

Gin + Gorm + Mysql + JWT + Chatfuel


小弟 初版 Golang 後端 API
Gin + Gorm + Mysql + JWT + Chatfuel
純後端 API(含 Chatfuel)
內含 mysql db: my_projcet.sql (記得改成本地端連線帳號密碼)
此案請搭配 angular8-my-project 一起服用。
支持 JWT (Json Web Token)(改進中)
原始碼在此:
https://github.com/wangchenshu/my-gin-github

所有 API 接口:

2019年8月31日 星期六

Install Gin (Go)


1. 如果還沒安裝 go 環境的,請先裝安好喔。
或是參考我這篇: https://csw-dawn.blogspot.com/2019/08/install-go-on-linux.html

2. 安裝 gin
go get -u github.com/gin-gonic/gin




3. 開一個檔案 命名 example.go 並且存檔。
$ emacs -nw example.go
package main

import "github.com/gin-gonic/gin"

func main() {
 r := gin.Default()
 r.GET("/ping", func(c *gin.Context) {
  c.JSON(200, gin.H{
   "message": "pong",
  })
 })
 r.Run() // listen and serve on 0.0.0.0:8080
}

4. 起動
$ go run example.go

5. $ curl http://127.0.0.1:8080/ping

6. 更多參考可上: https://github.com/gin-gonic/gin

Install go on linux


1. 到 https://golang.org/ 點擊 Download Go 下載 對應的版本



2. 找到對應的版本



3. 下載
   $ wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz



4. 安裝到指定目錄
    $ tar -C /usr/local -xzvf go1.12.9.linux-amd64.tar.gz


5. 測試是否安裝成功
    $ go version



6. 設定環境變數 GOPATH 和 PATH



7. 寫第一支程式來 對世界說 hello world


8. Go Go Go

2018年6月26日 星期二

Install Beego (Golang)

1. Download and install
$ go get github.com/astaxie/beego

2. Create file hello.go
$ emcas -nw hello.go
package main

import "github.com/astaxie/beego"

func main() {
    beego.Run()
}

3. Build and run
$ go build hello.go
$ ./hello

4. Installing bee tool
$ go get github.com/beego/bee

5. Bee tool commands
$ bee


6. Create new project
$ bee new myproject


7. Bee run
$ bee run