如何基于OpenShift进行微信公众号开发 (如何基于ospf实现srv6)

教程大全 2025-07-08 20:19:14 浏览

如何基于OpenShift进行微信公众号开发

2015-08-24 15:08:50OpenShift是红帽的云开发平台即服务(PaaS)。本文介绍了一个利用OpenShift托管Node.js Web服务进行微信公众号开发的过程。用户只要关注该微信号,发送英文的消息,就能收到中文翻译的回复。下面让我们看一下详细内容。

最近写了一个微信的翻译机器人。用户只要关注该微信号,发送英文的消息,就能收到中文翻译的回复。后台是用Node.js写的,托管在 OpenShift的Paas平台上。翻译过程实际上是调用微软的bing translation API做的,代码中用到了alexu84的bing-translate和JacksonTian的wechat这两个npm模块。下面把做的过程详细说一下。

1. 微信公众号开发

首先是要到申请一个公众号,并申请成为开发者。目前个人只能申请订阅号,不过订阅号也可以和用户进行消息的交互,这对我们的应用来说足够了。

成为开发者后,微信会给你一个AppID和一个AppSecret,都是一长串的字符串。在开发我们这个应用时,只要用到AppID。

微信客户端会接受用户输入的消息,并把它们转给我们的Web服务。所以微信会要求我们填写我们Web服务的URL地址,Token(令牌),EncodingAESKey(消息加解密密钥)。页面如下图所示:

大致上,填写好信息并提交后,微信 服务器 会发送一个GET请求到我们的Web服务,携带上Token和一个随机字符串。我们的Web服务必须按照微信开发者文档规定的方式处理这个请求,原样返回这个随机字符串,这样微信服务器才认为我们的Web服务是符合它的接入要求的。微信服务器转发消息给我们自己的Web服务时,是以一个POST消息携带上一个XML数据包,我们的web服务必须解析这个XML数据包才能取得用户发的消息。同样,当我们回复消息给微信服务器时,也要满足其规定的要求。所有这些,在微信的开发者文档中都有详细的描述。

我们当然可以仔细阅读微信的 开发者文档 ,并自己按要求一一实现对应的接口,不过这样太麻烦了:-)。更方便的方式是使用 JacksonTian的微信开发Node.js模块 。使用这个模块,我们只需要填入我们的Token,APPID以及EncodingAESKey,它自动就帮我们处理好微信服务器的验证请求,并允许我们直接获取/回复用户的字符串消息,使我们不用处理XML数据解析等细节问题。在下文我会详细介绍如何使用这个模块。

2. 利用OpenShift托管Node.js Web服务

首先,我们要知道如何用Node.js开发一个Web服务。本文不打算详细介绍这部分内容。基本上,利用express模块,只需几行代码就可以搭起一个Web服务,像这样:

搭建好web服务后,我们需要一个拥有公有IP的服务器来运行这些代码。在这方面,我们有很多选择,本文使用OpenShift的应用托管服务。

Youtube上有一个很好的 视频 介绍如何利用OpenShift建立和发布一个Node.js应用,step by step级别的,非常的详细。我们只需要看前30分钟就行了。基本上,Openshift使用git来管理代码开发以及发布的过程。你建立一个应用,OpenShift就在云端为你创建了一个Git仓库,包含一个示例的Node.js应用,并把它在云端运行起来了。我们只要把这个Git仓库的代码 Clone到本地,修改其中的Server.js,并把修改好的代码push到云端,Openshift就会自动帮我们停掉当前的示例服务,重新编译代码,重新发布并把我们修改过后的服务运行起来。超级的简单,是不是?

下面是稍微详细一点的步骤:

1)安装OpenShift的客户端工具 rhc ,我们需要利用这个工具创建、发布Node.js应用

2)在command line窗口运行 $ rhc app create nodejs-0.10。这个命令为我们在云端创建了一个Git仓库,把内含的示例应用运行起来,并把代码帮我们clone到了本地。

3)修改server.js,运行:

$ git commit -am

我们自己的web服务就在云端运行起来了!

3. 使用bing-translate 和wechat NPM module

这一部分稍微详细介绍一下如何修改server.js,也就是如何使用bing-translate和wechat这两个NPM模块的。

还是直接上代码吧,因为总共就不到40行代码。其中第18行展示了如何使用wechat,第23行展示了如何使用bing-translate。

因为我不想在开源的代码中明文写上我的微信APPID等敏感信息,我又写了一个util从Json文件中读取这些信息。第8行是读Bing translation app的ID和secret,第9行是读微信的APPID等信息。这些信息都分别写在一个Json文件中,格式如下:

另外,有人可能会注意到我没有直接使用alexu84的bing-translate模块,而是引用了一个本地的bing- translate.js文件。这是因为我对该模块的源文件做了少量的改动,主要是在本地cache了一个Bing translation API的token,这样就不用每次翻译的时候都去调微软的Web API重新拿token了,翻译响应的速度会大大提高。有空的时候我会把这个改动push给alexu84试试看。

4. 关于Microsoft Bing Translation API

大家都注意到在上一部分我们要填入Bing Translation的client ID和client secret。这是因为Bing Translation API也是一个Web服务,我们需要到这个 页面 去申请一个Bing Translation的app,申请好后,就有了我们自己的client ID 和 secret。当然这里可能涉及要注册微软的账号什么的,这里就不赘述了。

***, 我的代码都放到了 GitHub 上,除了把APPID和secret什么的替换成示例的字符串,其他的就和我在OpenShift上发布的代码一模一样了。

参考资源

1. Jose Annunziato 如何利用OpenShift 发布 Node.js应用的视频:

如何OpenShift进行微信公众号开发

2. alexu84: Bing translation API 的Node.js wrapper

3. JacksonTian: 微信API的Node.js wrapper

4. Bing Translation API:

5. 我的代码示例:


华为畅享7Plus#荣耀八碎屏了,换一个得多少

华为畅享7 Plus的整个屏幕组件的价格大概是350元,不包含人工费,具体要以华为售后网点的最终价格为准,也可以通过手机服务或者官网查询。 也可以通过以下方法来查询配件价格:1、您可以在华为官网左下角点击个人用户,在新页面点击服务与支持,在新页面点击维修配件价格查询,您就可以通过手机型号查询手机配件价格了。 2、在微信中关注“华为终端客户服务”公众号,在“自助服务”中点击“配件价格查询”可以查询到配件价格。 3、在会员服务(或者手机服务)APP中点击配件价格也可以查询到配件价格。 建议提前备份好数据,携带保修凭证或者购机发票,到当地的华为授权售后服务中心进行维修。

公众号第三方平台和微信公众号平台的区别与开发步骤

1. 第三方平台可以服务所有已授权给平台的公众号,别人扫码授权2. 公众平台开发至能服务单个公众号,填写appid和appsecret开发步骤1 你要会一门后台语言 推荐php demo多一点2.看官方文档,比在这里回答的详细多了

华为Mate10原厂电池多少钱,在那里能买到?

华为mate10原厂电池的价格大概是300元左右,具体的购买可以直接通过华为售后服务购买。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐