微信開發(二)Django自媒體、查詢類和問答類訂閱號開發
一、自媒體訂閱號開發
a、自媒體特點:
1、群發推送為主:每天
2、自媒體
3、資訊量大
4、歷史訊息
b、功能
1、微信瀏覽器:檢視歷史訊息,翻頁
2、全文微信官方伺服器,素材
3、微信對話介面:標題檢索
4、資料庫:人工、半自動新增
5、id , title , discription , url
二、查詢類訂閱號開發
a、功能:
1、關鍵詞拆分
2、API
3、資料庫
資料查詢是訂閱號,或者是一些服務號中的一個比較常用的內容。在第八課講過二級選單的查詢,今天介紹的是關鍵字拆分進行查詢,主要關鍵字拆分主要根據前兩個字,比如我們進行天氣查詢,我們可以輸入:天氣北京、天氣上海。如果需要查詢快遞,我們直接輸入快遞+單號。關鍵查詢主要適用於一次性查詢,二次選單適用於多次查詢。機器人對話,我們一般使用二級選單。關鍵字拆分以後,我們查詢一般是使用查詢API,或者是使用資料庫。網上有一些免費的API(www.36wu.com方便是因為不需要申請pk),呼叫起來相對簡單,與我們之前學的省會查詢結合起來進行關鍵字查詢。
b、主程式碼:
我們的主程式碼,views.py
1、Msgtype="event"
當關注該公共號時,即Event="subscribe",我們會給使用者回覆一些使用說明,我們這裡的使用說明是“輸入天氣”可以進行天氣的查詢,“輸入翻譯”進入一個英中或中英的翻譯,”輸入省會“我們可以查詢省會。
2、Msgtype="text"
對content進行拆分我們用前兩個漢字進行拆分,注意python對詞語的拆分從0開始到2(前面兩個漢字)為keyword,後面的內容定義為left,比如我們這裡“天氣北京”,keyword是天氣,left是北京。涉及到漢字的時候,我們這裡使用u轉換成utf-8。
天氣查詢我們分劃到weather.py封裝起來,這樣我們可以在微信中使用,在其它的網頁中也可以直接匯入。翻譯我們分劃到trans.py封裝起來。省會我們分劃到cap.py封裝起來,cap.py呼叫之前編寫好的models中的py資料庫。
3、API
使用36wu的開源API,包含比較多的幾個免費查詢。weather.py:天氣API返回的是一個預設的json程式碼,注意它這是二維的,[data][weather]。trans.py:翻譯的API(需要兩個引數一個是查詢q,一個是format可以實現中英英中翻譯),注意它這是三維的,[data][0]['dst']。
三、問答類訂閱號開發
關於問答類,沒有限定是訂閱號還是服務號,但是要求有自定義選單(微信認證或者微博認證可以擁有自定義選單),一問到底,答對題目才能繼續下一題,答錯了要重新來。
1、題庫。首先要有一個題庫,十道題
2、自定義選單。我們要有一個自定義選單
3、題目隨機不重複。
4、判斷對錯。選擇是否正確
5、最好成績。成績最好的
首先我們先來題庫的製作:
題庫欄位:一個是Que(題目),一個是Ans(答案)
models.py新增兩個表quiz,myuser(item生成隨機次序,避免重複)
admin.py新增class quizAdmin(admin.ModelAdmin):list_display=('que','ans'),class myuserAdmin(admin.ModelAdmin):list_display=('openid','item','best')兩個不同的admin
上傳至SAE
資料庫中新增資料表polls_quiz(兩個欄位),polls_myuser(四個欄位)
接著自定義選單:
自定義選單首先需要token。gettoken.py中token我們可以用快取進行儲存兩個小時。mc.set("token",token,7200)
cremenu.py建立選單,把原有的選單刪除掉,再進行新的選單建立
url.py增加了cre(即cremenu.py)訪問我們的這個檔案進行選單的建立。
題目隨機不重複:
我們來看一下主檔案views.py。CharField文字型可以填空;但是如果是IntegerField整型你如果填空的,需要加入null=True。所以num沒有插入他是不會報錯的,但是best必須要插入資料。Msgtype如果是事件,則可以進行下面選項的點選;如果是文字,則會回覆”文字“二字。首先我們通過獲取資料中quiz表單中的所有資料來判斷他的len也就是數量我們這裡有10道題,那麼我們就是total就是10。要打亂數列我們用到了隨機函式,random.shuffle(itemlist)將我們的itemlist進行了打亂。通過打亂的數序,我們依次讀取數列號,就達到了數列號不重複的順序。itemlist=eval(itemlist) eval()函式把字串轉換成數字型。
判斷對錯:
answer是否==EventKey;
最好成績:成績最好number
相關文章
- 微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務人工智慧
- 微信公眾號開發Django JSSDK授權DjangoJS
- 微信訂閱號實現AI自動回覆AI
- 微信公眾號開發Django 網頁授權Django網頁
- 微信聽書小程式自媒體開發製作案例
- 訂閱號服務開發01-搭建開發環境開發環境
- 自媒體美食類領域發展前景如何?如何做好美食類賬號?
- 微信公眾號開發
- 微信開發系列之一 - 微信公眾號開發的開發環境搭建開發環境
- Python開發微信公眾號後臺(系列二)Python
- 微信公眾平臺開發之店鋪類
- 3.PHP微信公眾平臺開發 訂閱事件處理PHP事件
- Nodejs微信公眾號開發NodeJS
- .net開發微信公眾號
- 微信公眾號開發-分享
- 微信公眾號開發5-自定義選單-微信開發phpPHP
- TP3.23開發的分答微信版語音問答系統原始碼原始碼
- PHP微信開發——自動回覆PHP
- 教你如何用node.js開發微信公眾號(二)Node.js
- 微信公眾號開發(二)識別訊息型別型別
- 基於微信開發的一款工具類小程式。
- 微信公眾號測試號開發小結
- 微信公眾號開發之坑(一)
- Python+Tornado開發微信公眾號Python
- PHP微信公眾號開發——公共方法PHP
- 【Java】微信公眾號開發筆記Java筆記
- Laravel+easywechat 開發微信公眾號Laravel
- 微信訂閱號設為星標方法 微信公眾號怎麼置頂?
- 微信,訂閱號,公眾號名稱出現 “未命名 ”
- SpringBoot 企業微信點餐系統實戰二:日誌配置、商品類目開發Spring Boot
- 微信小程式訂閱微信小程式
- 微信二次開發(生成二維碼)
- 微信iPad協議-雲控系統-個人微訊號二次開發-微信apiiPad協議API
- 開發APP和開發微信小程式的區別?APP微信小程式
- 微信公眾號開發 —— 微信網頁授權小記網頁
- 微信公眾號快速開發(二)專案搭建與被動回覆
- 微信公眾號開發推送事件排重事件
- 微信公眾號支付開發手記(node)
- 記一次微信公眾號開發