SAE 第一个响应

2018-07-24 15:34 更新

现在我们要做的,就是让用户发了信息之后,可以得到回应。回应的内容,暂且就是 "hello" 吧,刚开始写死就可以了。

我们目前只考虑普通的文本消息的回复,对应的文档在:

http://mp.weixin.qq.com/wiki/index.php?title=%E5%8F%91%E9%80%81%E8%A2%AB%E5%8A%A8%E5%93%8D%E5%BA%94%E6%B6%88%E6%81%AF

要回复的内容:

<xml>
<ToUserName><![CDATA[ov_QzuF0iskLIXqu0r71qOLmZV6B]]></ToUserName>
<FromUserName><![CDATA[gh_b47caeadeeb7]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[hello]]></Content>
</xml>

注意里面的 ToUserName 和 FromUserName 用前面的内容换一下。

现在的 index.wsgi :

# -*- coding: utf-8 -*-

import re
import time
from sae.storage import Bucket

def application(environ, start_response):
    if environ.get('REQUEST_METHOD', 'GET') == 'GET':
        q = environ.get('QUERY_STRING')
        m = re.findall('echostr=(.*)', q)[0]
        s = m.split('&', 1)[0]
        start_response('200 ok', [('content-type', 'text/plain')])
        return [s]

    length = environ.get('CONTENT_LENGTH', 0)
    length = int(length)
    body = environ['wsgi.input'].read(length)

    bucket = Bucket('log')
    bucket.put_object('%s.txt' % int(time.time()), body)
    start_response('200 ok', [('content-type', 'text/plain')])

    s = '''<xml>
<ToUserName><![CDATA[ov_QzuF0iskLIXqu0r71qOLmZV6B]]></ToUserName>
<FromUserName><![CDATA[gh_b47caeadeeb7]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[hello]]></Content>
</xml>'''    
    return [s]

s 的第一行不要空行。(我记得空行好像会出错)

提交代码到 SAE,现在向测试账号发消息,就可以得到一个 hello 的回应了。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号