微信小程序,简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。小程序是一种不用下载就能使用的应用,也是一项门槛非常高的创新,经过将近两年的发展,已经构造了新的小程序开发环境和开发者生态。
浏览器是没有状态的,浏览器只有cookie,session在客户端也是cookie。如果想让机器人记住帐号/密码实现自动登陆,问题就演化为让其记住Cookie。
记住Cookie在golang中是极简单的。
最近我们写运营机器人,有一个兄弟实现了微信帐号的自动登陆,简单翻了翻源码,发现是使用cookiejar实现的。
cookiejar:The net/http/cookiejar package provides a CookieJar implementation.
cookiejar在golang源码中极其简单:
type CookieJar interface {
//设置cookie SetCookies(u *url.URL, cookies []*Cookie)
//取cookie Cookies(u *url.URL) []*Cookie}
核心代码:
wechat.BaseURL = cached[`baseURL`].(string)
wechat.BaseRequest = cached[`baseRequest`].(*BaseRequest)
cookies := cached[`cookies`].([]*http.Cookie)
u, ue := url.Parse(wechat.BaseURL)
if ue != nil {
return ue
}
其中cached是从硬盘上读取的json序列数据,cached[`cookies`]是先前登陆之后写进的缓存。而wechat.Client是一个标准的http.Client: