微信公眾開發:使用訊息介面

來源:互聯網
上載者:User

之前寫了一篇搭建sae的python平台,通過微信公眾平台驗證的博文。現在就是要承上啟下,開始開發的第一步。也許你會說開發的第一步就是寫代碼。那我會對你表示鄙視,儘管南苑隨筆是個很簡單的應用,但是多少也還需要設計一下。確定一下需求,為了將來能夠吸引到粉絲來關注我的公眾號,我必須要定位好我的app,然後提供優秀的內容,並確定它的運營模式,才能進一步地提升我們的應用水準。

需求分析

首先,這個app是要用python寫的,那麼就一定要優雅一點,pythonic一點。對於我自己來說,我要使得這個app至少能夠滿足我閱讀若干與南苑相關的文章的要求才行。故而需要對南苑隨筆進行需求分析:

定位: 為南苑或者外校同學提供我們在南苑生活和學習的文章。文體不限,內容形式包括{圖片,語音,文字},推送給使用者,這正是微信能夠提供給我的。

約定: 允許投稿,但是投稿必須通過管理員的審核。其實很大程度上,我們是為了向粉絲們推介 @bibo-果凍 和 @daoluan-鄭思願 合作的那本《南苑隨筆——IT小小鳥外傳》。

內容: 校園生活,學習,感情,分享,趣味,攝影,文學作品,簡單社交 ,歌曲等等。

服務: 提供每1天/2天定期推送文章或語音。同時相應使用者發來的請求,對使用者請求進行分析後返回所要求的內容。

效能: 要求伺服器在5秒內返回使用者的請求內容,在網路差的時候,這個就難說了。能夠同時處理至少20位粉絲的請求(其實到底有沒有這麼多粉絲髮來請求,我心裡還是沒有數啊)。

系統設計

這次,我吸取了上次的經驗教訓,要先完成邏輯和資料的設計,最後才去設計我們的互動介面(包括互動方式和菜單)。資料先行,那麼一切就從構建起資料庫開始。參照wordpress的部落格資料庫,就可以設計出基本的資料庫架構。這部分就交給 @daoluan-思願 來搞定,我相信他會完成的相當出色。

本系統需要一個部落格系統,和一個微信服務app,部落格系統作為web端,用瀏覽器可訪問的。而微信app則負責推送到使用者的微信帳號聊天介面。故而我們的資料庫設計就很清晰了,需要:

user表——使用者

post表——文章

blog配置——部落格的設定

category表——分類

———————————次要———————————

url表——友情連結

guest_book表——留言簿

而我需要用到的僅僅是部落格系統資料庫的一個子集——post表和guest_book表(也許會用到category表)。故而開發微信app則只需要自行建立兩個表進行實驗即可。

發送訊息實驗

暫且不把設計邏輯排到議程上來,我們來嘗試一下在第三方伺服器和微信伺服器,以及用戶端進行通訊。假如使用者發送來一個請求,由於已經綁定了URL,且開啟了開發模式,那麼就微信伺服器就會轉寄這個請求到我們的伺服器,我們的伺服器要解析這個請求,然後返回所請求的內容。

我們需要一個類來處理get請求,以及定時向微信伺服器傳送群發的文章。

該類 weixin_scnuwriter設計如下:

handle_request(request)         # 處理請求

parse_request_xml(xml)        # 解析請求

response_msg(request)            # 響應請求(關鍵邏輯部分)

pack_text_xml(post_msg, response_msg)  # 打包響應的常值內容,需要參考微信API,供response_msg調用

# 另外在資料庫方面要能夠讀取,需要django於資料庫打交道,不過我們暫時不實現,只是做一個簡單的測試。

下面是handle_request代碼:

def handle_request(request):        if request.method == 'GET':            response = HttpResponse(check_signature(request),content_type="text/plain")    # 如果是GET請求,那麼核對簽名           return response       elif request.method == 'POST':             response = HttpResponse(response_msg(request),content_type="application/xml")  # 如果是POST請求,那麼響應訊息           return response        else:            return None

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.