教程四:调试公众号服务器,调试公众
在进入正式的开发之前,我们还需要掌握微信公众号开发的调试方法.
如果我们完全依赖接收到的消息来进行调试,那我们将受到很多的限制,
比如我们只能返回指定格式的消息才能在微信应用中看到我们回复的内容,
如果我们的服务器报错,我们将无法知道确切的错误信息,
所以我们需要一个能代替微信服务器来给我们的公众号服务器发送消息并且能显示我们返回的任何消息格式的工具.
幸运的是我们在网上可以找到这样一个工具`webbot-cli`,
这个工具的地址是开源的,源码地址是: https://github.com/node-webot/webot-cli/blob/master/README.md
这是一个nodejs编写的工具,要安装这个工具我们首先需要安装nodejs开发环境.
这里是nodejs的官网 https://nodejs.org/, 按照官网的指示一步步安装就OK了.
安装完成后我们可以利用`npm`工具安装这个模拟开发调试工具.
安装命令是:
安装这个工具需要管理员权限,所以mac和linux用户可能需要使用`sudo`.
安装完成后我们介绍一个这个工具的使用.
我们直接在命令行调用如下命令就会开始运行这个工具,
其中`weixin` 为我们之前配置的token参数,
`http://weixinshow001.sinaapp.com` 为我们公众平台的服务器地址.
大家需要把这两个参数更改为自己的.
程序的运行界面长得是这个样子的:
运行成功时会回显刚才传进去的url和token.
这里我们简单地测试一条text消息,
选中状态下回车会进入文本输入界面.
我们随便输入一些文字,然后点击回车发送.
然后我们看到一个错误,这是为啥呢?
原因是这样的,这个工具并未完全按照微信官方的消息格式发送,
微信官方的服务器在发送消息时并没有在GET字段中添加`echostr`项,
而这个工具会在任意一条消息发送`echostr`字段.
我们之前使用的wechat-php库是使用这个字段来判断是否是token验证特殊请求的,
如果是token验证特殊请求就会返回echostr字段并且终止后续操作,
于是造成了这个错误的产生.
现在我们修改一下我们的库来兼容这个测试库.
我们打开`Wechat.php`文件,在文件中找到`isValidateIncomingConn`函数,
这个函数是用来判断这一个请求是否是token验证请求的.
我们更改为一下内容:
完成更高后上传到SAE的服务器使之生效,然后重新在`webot`中发送文本消息,我们就可以看到正确的回显了.
基于这种调试方式,我们甚至可以再本地服务器上调试了!
基于这种调试方式,我们甚至可以再本地服务器上调试了!
基于这种调试方式,我们甚至可以再本地服务器上调试了!
只要把调试工具的url参数设置成本地url就ok了.
另外如果喜欢在外网服务器上写代码,微信官方提供的测试页也是不错的:http://mp.weixin.qq.com/debug
感谢你的阅读,请用心感悟!希望可以帮到初学的您!!分享也是一种快乐!!!请接力。。。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

드림위버 CS6
시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
