GO开源:wechat_pusher-微信模板消息推送服务
kuaifeidao
7年前
<p>项目已经在Github开源,还没有完全地完善,但是用是没问题的。 求各位大神的star啊,这是我的第一个比较完整的Go程序。( <em>^__^</em> )</p> <h2>怎么用?</h2> <h3>第一步当然是go get</h3> <ul> <li>go get github.com/hundredlee/wechat_pusher.git</li> <li>当然你也可以直接clone整个项目,直接导入IDE中跑一下试试</li> </ul> <h3>项目结构</h3> <pre> <code class="language-go">├── README.md ├── config │ └── config.go ├── config.conf.example ├── glide.lock ├── glide.yaml ├── main.go.example ├── models │ ├── message.go │ ├── task.go │ └── token.go ├── statics │ └── global.go ├── utils │ ├── access_token.go │ └── push.go └── vendor</code></pre> <h3>配置文件</h3> <ul> <li>我们可以看到根目录有一个config.conf.example,重命名为config.conf即可</li> <li>内容如下:</li> </ul> <pre> <code class="language-go">[WeChat] APPID= SECRET= TOKEN= TEMPLATE=</code></pre> <ul> <li>具体怎么填,我就不说了。这是接触过微信开发的童鞋都知道的东西。</li> </ul> <h3>模板配置怎么配置</h3> <ul> <li>我们看看models文件夹里面有message.go文件,里面其实就是模板的格式。</li> <li>具体怎么用,看看main.go.example文件里面的示例。</li> </ul> <pre> <code class="language-go">package main import ( "fmt" "github.com/hundredlee/wechat_pusher/models" "github.com/hundredlee/wechat_pusher/utils" "runtime" ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) var tasks []models.Task tasks = make([]models.Task, 100) mess := models.Message{ ToUser: "openid", TemplateId: "templateId", Url: "http://baidu.com", Data: models.Data{ First: models.Raw{"xxx", "#173177"}, Subject: models.Raw{"xxx", "#173177"}, Sender: models.Raw{"xxx", "#173177"}, Remark: models.Raw{"xxx", "#173177"}}} task := models.Task{Message: mess} for i := 0; i < 100; i++ { task.Message.Data.First.Value = fmt.Sprintf("%d", i) tasks[i] = task } utils.NewPush(tasks).SetRetries(4).SetBufferNum(10).Run() }</code></pre> <h3>Run</h3> <ul> <li>很简单,当你组装好所有的task以后,直接运行一句话就可以了。</li> <li>utils.NewPush(tasks).SetRetries(4).SetBufferNum(10).Run()</li> </ul> <h3>打算?</h3> <ul> <li>目前还是比较简单的推送,然后日志相对来说比较完整。但是缺少了计划任务功能。大家可以star一下,等我更新计划任务的功能。</li> </ul> <p> </p> <p>项目主页:<a href="http://www.open-open.com/lib/view/home/1496969564370">http://www.open-open.com/lib/view/home/1496969564370</a></p> <p> </p>