Code Monkey home page Code Monkey logo

weixin-simulator's Introduction

weixin-simulator

微信公众平台没有本地调试环境,在开发时遇到了很多麻烦。写测试固然是一种方式,但维护一大批测试样例挺费神的,所以希望能有什么东西模拟微信客户端在本地与应用进行交互。求谷歌不得,于是用tkinter自己写了个模拟器。

配置

请根据需要在主文件gui.py中修改settings字典,最重要的是把url修改为相应Handler的URL。

settings = {
    # `ToUserName` & `FromUserName` will be placed in the XML data posted to
    # the given URL.
    "ToUserName": "gh_bea8cf2a04fd",
    "FromUserName": "oLXjgjiWeAS1gfe4ECchYewwoyTc",

    # URL of your Wexin handler.
    "url": "http://localhost:8080/weixin",

    # These will be displayed in GUI.
    "mp_display_name": "APP",
    "me_display_name": "ME",

    # The token you submitted to Weixin MP. Used to generate signature.
    "token": ""
}

使用

完成设置后直接运行主文件gui.py即可。效果如下图:

Simulator GUI Screenshot

点击关注公众帐号将模拟一位微信用户关注该公众帐号。

点击取消关注将模拟一位微信用户取消关注该公众帐号。

发送c@EVENT_KEY将模拟一位微信用户点击以EVENT_KEYEventKeyCLICK类型自定义菜单选项。

发送v@URL将模拟一位微信用户点击以URLEventKeyVIEW类型自定义菜单选项。

其他

功能很简单也很不完善,不过最基本的开发够用了。好在代码也很简单,请随意修改以满足自己的需求。欢迎发PR。

Example: Interact with Flask-Weixin example

Flask-Weixin

Simulator GUI

Simulator output

Flask-Weixin output

weixin-simulator's People

Contributors

defp avatar thendcn avatar ushuz avatar zhangkaizhao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weixin-simulator's Issues

出错了~Check Sign Fail.

$ python /Users/cos800/py-proj/weixin-simulator/gui.py
Received:
Check Sign Fail.

Exception in Tkinter callback
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1470, in call
return self.func(*args)
File "/Users/cos800/py-proj/weixin-simulator/gui.py", line 99, in send
receive(msg["time"], post(qs, TPL_TEXT % msg))
File "/Users/cos800/py-proj/weixin-simulator/gui.py", line 111, in receive
et = ET.fromstring(response)
File "", line 124, in XML
ParseError: syntax error: line 1, column 0
Received:
Check Sign Fail.

Exception in Tkinter callback
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1470, in call
return self.func(*args)
File "/Users/cos800/py-proj/weixin-simulator/gui.py", line 99, in send
receive(msg["time"], post(qs, TPL_TEXT % msg))
File "/Users/cos800/py-proj/weixin-simulator/gui.py", line 111, in receive
et = ET.fromstring(response)
File "", line 124, in XML
ParseError: syntax error: line 1, column 0

刚开始进行微信开发,url地址是和微信后台地址一样?

不是太明白这个url,这和微信后台配置那里的地址一样吗,就是一个自己服务器的地址吗?
我看了下代码,这个不是会向url地址发送一个请求,而这个url应该像微信官方的一个地址(就像api.weixin.qq.com/xxxx)来接收才对吧?

代码bug

gui.py第38行:

<MsgId>$(id)s</MsgId>

运行问题

运行时候出现
File "gui.py", line 85
print "Received:\n%s\n" % response
^
yntaxError: invalid syntax

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.