最近看了些Python的书,但是感觉没有什么进步,想做点事情试试,刚好我以前弄了一个微信公众号,好久不管理了
这次就用它来练练手。
看网上有些教程告诉怎么弄的,我弄了半天终于把验证这步通过了,记录一下:
微信公众号名称:今天做了没
微信公众号:now-to-do
有兴趣的可以加一下,虽然其实没有什么功能呢。
我参考的是这些内容:
http://www.yangyanxing.com/?p=859
http://ke.qq.com/video/index.html?course_id=21303
开始记录整个过程:
第一步:申请SAE的账号,具体的就不说了,反正是申请好了我,挺简单的。然后创建一个代码版本,
创建完了,可以在网页上直接写代码,写可以在电脑上安装一个SVN,在本地写,然后提交到服务器上,
我是采用的本地写的方法。这里其实也挺烦的,我也不是一下子就弄好了的,不过耐心弄一下还是挺容易的。
第二步:开始在代码中添加东西,让微信验证的时候可以通过。
先大概看一下:
原本这里面是有两个文件的:config.yaml 和 index.wsgi
在config.yaml中添加要使用的扩展包,就像图中所示:
在这里我当时遇到了问题,写好了,保存就是不成功,直接在网页上编辑,然后保存,再打开就没有保存上,
使用SVN提交也遇到了问题,提交不成功,我看了一下大概是说syntax error,语法有问题,然后仔细看了一下
就是name前面有一个 - 这个小横我没有写,当时看他们的示例我以为那个是他们编辑器的标识呢,后来写上了就好了。
这里version前面是两个空格。
然后就是index.wsgi了,这个里原来是有代码的,不过我都删除了,原来你如果使用这个地址去访问,是可以看到
Hello SAE这个输出的在网页上,但是删除后,改成这样,你再使用网页访问,是会说服务器上有程序错误的。不过
这个没有关系,我们不是要做一个web,而是要让它当公众号的服务器用。
上面nowtodoInterface是我又创建的一个nowtodoInterface.py的文件,里面有一个类NowtodoInterface。
urls括号中的东西,第一个就相当于路径名,我这个文件是直接创建在/下的,没有创建子目录,如果你要是创建了
子目录来放这个文件,比如子目录叫:subDir这个 / 就要写成/subDir了,而后面的NowtodoInterface就是那个类的名。
再下面的一堆东西,我其实不知道是什么,只是他们这么写,我也这么写的,等知道了,再回来补充上。
然后就是我的nowtodoInterface.py了
在这里,就是那个token是自己定义的,这个要和一会在微信公众平台上填写的token一致就行。
signature timestamp nonce echostr 这三个是微信公众平台连你这,给你发的东西,用于验证,
sha1是一种验证方法,拿token timestamp nonce一起计算出来,和发给你的signature比较,这个signature就是
微信那边这样算出来的,你们算的一样,就对了,对了就把它给你的那个echostr再发回去就可以了。不对,就验证失败了。
这里这个验证其实不用也一样,微信那边就基于你有没有返回这个echostr来决定是否成功的,所以代码写成这样也是
可以的
def GET(self): data = web.input() echostr = data.echostr return echostr
这样就是直接得到发过来的echostr,然后再发回去,就能通过了。