SAE 第一個(gè)響應(yīng)

2018-07-24 15:34 更新

現(xiàn)在我們要做的,就是讓用戶發(fā)了信息之后,可以得到回應(yīng)?;貞?yīng)的內(nèi)容,暫且就是 "hello" 吧,剛開始寫死就可以了。

我們目前只考慮普通的文本消息的回復(fù),對應(yīng)的文檔在:

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

要回復(fù)的內(nèi)容:

<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 用前面的內(nèi)容換一下。

現(xiàn)在的 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 的第一行不要空行。(我記得空行好像會(huì)出錯(cuò))

提交代碼到 SAE,現(xiàn)在向測試賬號發(fā)消息,就可以得到一個(gè) hello 的回應(yīng)了。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號