不要被图吓倒,本文将演示如何实现用微信拍照,并应答式存入企业信息系统的全过程。
本文为照顾Go语言零基础的童鞋,会详细的从搭建配置开发环境讲起。
阅读和理解本文需要了解基本的编程知识,如果拥有php、java、C#、VB/VC相关经验,可以跳过相关章节。
获得Go语言
首先要安装Go语言,截至本文发布,Go已经发布了1.6beta1版,不过这里使用1.5.2版做演示。
以win10 64位系统为例,下载go1.5.2.windows-amd64.msi即可双击傻瓜式安装go语言了。
2016-11 补记,golang已更新到1.7.3,拥有更快的GC,更高的性能,推荐使用
获得Git bash工具
村长的SDK等源码都开源托管在github.com,下载这些代码需要git工具。
以win10 64位系统为例,下载64-bit Git for Windows Setup
并安装即可。
获得、配置IDE
Go语言目前没有官方IDE,本文使用liteIDE的最新版x28作为开发工具。
liteIDE的默认字体和颜色不是我的菜,
上述链接同时提供了村长喜欢的调色配置文件(woylin.xml
)和等宽字体文件(SourceCodePro-Semibold.ttf
)
如何使用?复制到liteide目录下\share\liteide\liteeditor\color\
就可以在选项里选择了。
来张IDE截图吧,是不是美美哒?
接下来先配置一下gopath,比如先在E盘
建了一个gopath
文件夹,然后在gopath下建立bin
,pkg
,src
三个文件夹。
打开liteIDE,点开【查看】-【管理GOPATH】,添加目录“E:\gopath”即可。
重要补充:要在Windows环境变量里加入gopath!!!
在src下建立一个wx文件夹,用来装微信API源码,最后在wx下建立main.go准备开工!
获得微信API、SDK等示例源码
猛戳这里下面获取村长开源在github的热气腾腾的干货:
复制这些代码贴上,点击含“github.com/esap…”字样的一行后点击G按钮,get村长版微信SDK
Get成功后,会自动下载到本地,提示信息如下。
由于要连接ES数据库,所以要配置一下数据库,在wx目录下建立conf目录,然后建立一个db.json的配置文件
在文件中填入ES数据库服务器的相关信息。
{
"UserId" :"填入你的sql密码用户名,例如sa",
"Pwd" :"填入你的sql密码,例如123456",
"Server" :"填入你的sql IP,例如127.0.0.1",
"DbName" :"填入你的es数据库名称,例如esap"
}
修改网盘路径为ES服务器的系统网盘路径,(关于网盘路径的详细设置,请看第十五弹的视频教程
)点击BR编译运行程序,如果看到信息提示Start at:80则说明已经成功启动微信API了,同时我们会看到wx目录下生成了EXE文件。
获得、配置微信测试号
如果你已经有微信公众号了,可以跳过本小节。
当然也可以申请正式的公众号,不过如果是玩玩可以用测试号,功能全开,棒棒哒。
首先点击链接
点击登陆后用你的微信扫一扫,扫描一下二维码即可登录。
登陆后修改接口配置中的URL和Token为自己的服务器ip/域名,注意,微信现在支持非80端口了。
如果你的token设置不是esap,请修改main.go的最后几行代码并重新编译运行。
提交成功后,就可以关注测试号玩转微信上传照片啦。
玩转微信上传照片到ES
环境es9.4.124+sql2008r2
,安装后请启动网盘并修改相关的网盘参数。
示例库的员工信息类似下图。
现在可以打开微信测试号,上传照片了。
具体流程:发照片–> 发姓名+工号–> 完成上传。
再次打开ES的员工表,可以看到照片已经更新了!
破解80端口限制(现在微信支持非80端口了,本节可忽略)
微信API要求使用80端口,但是很多公司的80端口都是被封的,村长教大家一种变通的方法来“打通”80端口。
首先需要一台在公网上的web服务器,例如租一台阿里云。
以Apache为例,配置反向代理,将微信公众号上填写的URL反向代理到你公司的IP上,这是就可以指定其他非80端口了。
类似下面这样修改配置文件,就实现了微信请求(示例为api.iesap.net)转发公司8080端口的代理。
<VirtualHost *:80>
ServerAdmin 你的邮箱
ServerName 你的域名,可以是二级域名
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://公司的公网IP:8080/
ProxyPassReverse / http://公司的公网IP:8080/
</VirtualHost>
然后在公司的路由上做NAT映射,类似下面这样(ROS),实现公司内网微信API与外网反向代理对接。
小结
本文主要介绍了使用go编译运行一个微信API以及如何搭建相关环境。
事实上,我们还能用微信公众号实现更多企业内部管理功能,例如推送内部web页面,实现填报、查询、审核和报表等功能,而这些内部web页面即使被分享,在外网也是不能被访问到的。当然更科学的权限控制是申请企业公众号(即使免费版也可永久管理200个员工),具体权限设置请参考官方文档,本文不再赘述。