2016/12/13 09:24:04 http: panic serving [::1]:56630: runtime error: invalid memory address or nil pointer dereference
goroutine 5 [running]:
net/http.(*conn).serve.func1(0xc820070100)
/usr/lib/go/src/net/http/server.go:1389 +0xc1
panic(0x7808a0, 0xc82000a130)
/usr/lib/go/src/runtime/panic.go:443 +0x4e9
github.com/silenceper/wechat/context.(*Context).GetAccessToken(0xc8200f2080, 0x0, 0x0, 0x0, 0x0)
/home/xjk/GoCode/src/github.com/silenceper/wechat/context/access_token.go:36 +0x1da
github.com/silenceper/wechat/menu.(*Menu).SetMenu(0xc82004f9c0, 0xc820104008, 0x1, 0x1, 0x0, 0x0)
/home/xjk/GoCode/src/github.com/silenceper/wechat/menu/menu.go:123 +0x48
main.createMenu(0x7f77da1fc820, 0xc8200fe000, 0xc8200e82a0)
/home/xjk/GoProject/wechat/examples/http/http.go:69 +0x617
net/http.HandlerFunc.ServeHTTP(0x89d380, 0x7f77da1fc820, 0xc8200fe000, 0xc8200e82a0)
/usr/lib/go/src/net/http/server.go:1618 +0x3a
net/http.(*ServeMux).ServeHTTP(0xc820016cc0, 0x7f77da1fc820, 0xc8200fe000, 0xc8200e82a0)
/usr/lib/go/src/net/http/server.go:1910 +0x17d
net/http.serverHandler.ServeHTTP(0xc820070080, 0x7f77da1fc820, 0xc8200fe000, 0xc8200e82a0)
/usr/lib/go/src/net/http/server.go:2081 +0x19e
net/http.(*conn).serve(0xc820070100)
/usr/lib/go/src/net/http/server.go:1472 +0xf2e
created by net/http.(*Server).Serve
/usr/lib/go/src/net/http/server.go:2137 +0x44e
2016/12/13 09:24:04 http: panic serving [::1]:56632: runtime error: invalid memory address or nil pointer dereference
goroutine 6 [running]:
net/http.(*conn).serve.func1(0xc820070180)
/usr/lib/go/src/net/http/server.go:1389 +0xc1
panic(0x7808a0, 0xc82000a130)
/usr/lib/go/src/runtime/panic.go:443 +0x4e9
github.com/silenceper/wechat/context.(*Context).GetAccessToken(0xc8200f2200, 0x0, 0x0, 0x0, 0x0)
/home/xjk/GoCode/src/github.com/silenceper/wechat/context/access_token.go:36 +0x1da
github.com/silenceper/wechat/menu.(*Menu).SetMenu(0xc82004f9c0, 0xc820104018, 0x1, 0x1, 0x0, 0x0)
/home/xjk/GoCode/src/github.com/silenceper/wechat/menu/menu.go:123 +0x48
main.createMenu(0x7f77da1fc820, 0xc8200fe1a0, 0xc8200e80e0)
/home/xjk/GoProject/wechat/examples/http/http.go:69 +0x617
net/http.HandlerFunc.ServeHTTP(0x89d380, 0x7f77da1fc820, 0xc8200fe1a0, 0xc8200e80e0)
/usr/lib/go/src/net/http/server.go:1618 +0x3a
net/http.(*ServeMux).ServeHTTP(0xc820016cc0, 0x7f77da1fc820, 0xc8200fe1a0, 0xc8200e80e0)
/usr/lib/go/src/net/http/server.go:1910 +0x17d
net/http.serverHandler.ServeHTTP(0xc820070080, 0x7f77da1fc820, 0xc8200fe1a0, 0xc8200e80e0)
/usr/lib/go/src/net/http/server.go:2081 +0x19e
net/http.(*conn).serve(0xc820070180)
/usr/lib/go/src/net/http/server.go:1472 +0xf2e
created by net/http.(*Server).Serve
/usr/lib/go/src/net/http/server.go:2137 +0x44e
代码如下
func createMenu(rw http.ResponseWriter, req *http.Request) {
//配置微信参数
config := &wechat.Config{
AppID: "ai",
AppSecret: "as",
Token: "token",
EncodingAESKey: "4f9f7ad4b469492a808993f466e3c69889da3cebfcf",
}
wc := wechat.NewWechat(config)
mu := wc.GetMenu(req, rw)
buttons := make([]*menu.Button, 1)
btn := new(menu.Button)
//创建click类型菜单
btn.SetClickButton("name", "key123")
buttons[0] = btn
//设置btn为二级菜单
btn2 := new(menu.Button)
btn2.SetSubButton("subButton", buttons)
buttons2 := make([]*menu.Button, 1)
buttons2[0] = btn2
//发送请求
err := mu.SetMenu(buttons2)
if err != nil {
fmt.Printf("err= %v", err)
return
}
}