国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

微信公眾平臺開發(十一) 功能整合

2019-11-15 01:23:43
字體:
來源:轉載
供稿:網友
微信公眾平臺開發(十一) 功能整合

一、簡介

在前面的幾篇微信功能開發文檔中,各個微信的功能都是獨立的,單一微信只能提供一種功能,這樣不符合大眾開發者和客戶的需求。所以在這一篇文章中,我們將對前面開發出來的微信功能進行簡單整合,以供讀者參考。

二、思路分析

一種簡單的做法是,截取關鍵字,然后進行判斷,執行相應功能代碼。這種做法比較適合功能不多,簡單的微信;另一種做法是,給各功能編號,然后記錄用戶選擇的功能狀態,用戶每次查詢的時候,首先判斷他的狀態,然后執行相應功能代碼。這種做法適合功能整合比較多,復雜的微信;開發者可以根據自己的需要來進行選擇。在這篇文章中,我們將會講解天氣和翻譯功能的整合,更多功能的整合類似,大家可以參考著做一下。

三、關鍵字截取做法

3.1 關鍵字截取

我們定義用戶發送過來的消息格式是固定好的,查詢天氣格式為 “地區+天氣”,例如 “蘇州天氣”、“北京天氣”,所以首先截取后兩個字,判斷是否為 “天氣” 關鍵字,然后再截取前面的城市名,進行查詢。同理,翻譯也是截取前面的兩個字,判斷是否為“翻譯”關鍵字,然后再截取后面的文字進行查詢操作。

關于關鍵字截取方法,請參考前面的文章介紹,地址是:http://m.survivalescaperooms.com/mchina/p/3170551.html。

//截取關鍵字$weather_key = mb_substr($keyWord,-2,2,"UTF-8");$city_key = mb_substr($keyword,0,-2,"UTF-8");$translate_key = mb_substr($keyword,0,2,"UTF-8");$word_key = mb_substr($keyword,2,200,"UTF-8");

3.2 功能整合

if($weather_key == '天氣' && !empty($city_key) && $translate_key != '翻譯'){    $contentStr = _weather($city_key);}elseif($translate_key == '翻譯' && !empty($word_key)){    $contentStr = _baiduDic($word_key);}else{    $contentStr = "感謝您關注【卓錦蘇州】/n微信號:zhuojinsz";}

說明:在這里,我們已經將查詢天氣和翻譯封裝成了函數 _weather() 和 _baiduDic(),然后引入這些文件,在這里直接調用即可,非常方便。

這樣,我們就完成了天氣和翻譯功能的整合。

3.3 測試

測試成功。

四、狀態記錄做法

4.1 說明

首先,我們需要將各功能進行編號,比如:

回復序號:

1. 天氣查詢

2. 翻譯查詢

然后使用數據庫記錄用戶的查詢狀態,用戶每次輸入消息,系統先從數據庫中查詢該用戶的狀態,然后進行相應操作。

4.2 在數據庫中創建用戶狀態表 user_flags.

---- 表的結構 `user_flags`--CREATE TABLE IF NOT EXISTS `user_flags` (  `from_user` varchar(50) NOT NULL,  `flag_id` int(4) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;

4.3 引入數據庫函數文件

操作數據庫,需要引入數據的操作文件,這里使用BAE 提供的MySQL 云數據庫。

//引入數據庫文件require_once('includes/mysql_bae.func.php');

4.4 判斷用戶狀態

//判斷用戶狀態$sql = "SELECT flag_id FROM user_flags WHERE from_user = '$fromUsername' LIMIT 0,1";$result = _select_data($sql);while (!!$rows = mysql_fetch_array($result)){  $user_flag = $rows[flag_id];}

說明:從user_flags 表中獲取flag_id 賦給$user_flag,用于下面的判斷操作。

4.5判斷用戶存在的狀態和新輸入的狀態

if(trim($keyword) <> $user_flag && is_numeric($keyword)){    $user_flag = '';    $sql = "DELETE FROM user_flags WHERE from_user = '$fromUsername'";    _delete_data($sql);}

說明:判斷用戶存在的狀態和新輸入的狀態,如果狀態不一樣,而且輸入的keyword 是數字,則設置$user_flag 為空,數據庫中清除狀態,好像第一次查詢流程

4.6 用戶狀態判斷

A. 狀態為空,即第一次查詢

if (empty($user_flag)){    switch ($keyword)    {        case 1:    //查詢天氣            $sql = "insert into user_flags(from_user,flag_id) values('$fromUsername','1')";            $contentStr = "請輸入要查詢天氣的城市:如北京、上海、蘇州";            break;        case 2:    //翻譯            $sql = "insert into user_flags(from_user,flag_id) values('$fromUsername','2')";            $contentStr = "請輸入要翻譯的內容:如:早上好、good morning、おはよう";            break;        default: //其他            $sql = "";            $contentStr = "感謝您關注【卓錦蘇州】/n微信號:zhuojinsz/n請回復序號:/n1. 天氣查詢/n2. 翻譯查詢/n輸入【幫助】查看提示/n更多內容,敬請期待...";            break;    }        //判斷并執行上面的插入語句    if (!empty($sql))    {        _insert_data($sql);    }}

說明:用戶狀態為空,即第一次查詢,如果用戶輸入的關鍵字是功能序號,即1或2,則將用戶狀態寫入數據庫,然后給出提示信息;如果用戶輸入的關鍵字不是功能序號,則給出幫助信息,提示用戶輸入。

B.用戶狀態不為空

else{    if ($user_flag == '1')    {        $contentStr = _weather($keyword);    //查詢天氣    }elseif ($user_flag == '2')    {        $contentStr = _baiduDic($keyword);    //翻譯    }}

說明:用戶狀態不為空,用戶已經有查詢操作,只要用戶不切換功能,則一直保持在現有功能下,執行相應代碼。

4.7 測試

五、完整代碼獲取

請訪問樂思樂享官方論壇

URL:http://pan.baidu.com/s/1c0s3Jby

六、關注

請關注卓錦蘇州微信公眾帳號,卓錦蘇州基于BAE 平臺開發,針對于主流的微信功能進行開發測試。

您可以關注卓錦蘇州公眾帳號進行功能測試,以及獲取新的應用開發。

1. 登錄微信客戶端,通訊錄 -> 添加朋友 -> 查找公眾號 ->zhuojinsz,查找并關注。

2. 掃描二維碼:

卓錦蘇州功能列表:


David Camp

  • 業務合作,請聯系作者QQ:562866602
  • 我的微信號:mchina_tang
  • 給我寫信:mchina_tang@qq.com

我們永遠相信,分享是一種美德 |We Believe, Great People Share Knowledge...


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 改则县| 崇文区| 阳曲县| 巴林右旗| 邹平县| 司法| 囊谦县| 桦南县| 綦江县| 彝良县| 麦盖提县| 南川市| 防城港市| 新化县| 辛集市| 清镇市| 武平县| 台北县| 沛县| 白河县| 马尔康县| 伊金霍洛旗| 南部县| 冕宁县| 定兴县| 浮梁县| 湖南省| 尉犁县| 昌都县| 读书| 汉源县| 南宁市| 南丰县| 大安市| 堆龙德庆县| 海淀区| 大城县| 闵行区| 吉首市| 庆元县| 闵行区|