ESAP达摩院 思想有多远,我们就能走多远

ESAP第十四弹 手把手教你玩转ES微信开发(GO语言篇)


不要被图吓倒,本文将演示如何实现用微信拍照,并应答式存入企业信息系统的全过程。

本文为照顾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工具。

git官方windows版下载链接

以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下建立binpkgsrc三个文件夹。

打开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

下载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个员工),具体权限设置请参考官方文档,本文不再赘述。


近似文章