亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
一、功能介紹
二、具體實(shí)現(xiàn)
1、提供存取介面
2、簽名認(rèn)證和分發(fā)請(qǐng)求不再贅述,參考上一章,微信公眾帳號(hào)開(kāi)發(fā)教程(二) 基礎(chǔ)框架搭建
1)關(guān)注
當(dāng)微信用戶關(guān)注公眾帳號(hào)時(shí),可以給其適當(dāng)?shù)奶崾???梢允菤g迎詞,可以是幫助提示。
簡(jiǎn)單的交流問(wèn)候,例如你好、幫助等等,跟我們使用微信聊天一樣,不過(guò)回應(yīng)是由我們的程序響應(yīng)。具體功能,可以依照自己的需求進(jìn)行添加。
這個(gè)功能需要請(qǐng)求實(shí)時(shí)查詢的,請(qǐng)求官方的天氣發(fā)佈網(wǎng)站,然後解析其回傳值,按照我們需要的格式,組織天氣資訊,最後發(fā)送給微信客戶。
首頁(yè) 微信小程式 微信開(kāi)發(fā) 微信公眾平臺(tái)開(kāi)發(fā)教學(xué)(四) 實(shí)例入門(mén):機(jī)器人

微信公眾平臺(tái)開(kāi)發(fā)教學(xué)(四) 實(shí)例入門(mén):機(jī)器人

Feb 16, 2017 pm 04:20 PM
微信大眾平臺(tái)

一、功能介紹

透過(guò)微信公眾平臺(tái)實(shí)現(xiàn)線上客服機(jī)器人功能。主要的功能包括:簡(jiǎn)單對(duì)話、查詢天氣等服務(wù)。

這裡只是提供比較簡(jiǎn)單的功能,重點(diǎn)在於透過(guò)此實(shí)例來(lái)說(shuō)明公眾平臺(tái)的具體研發(fā)過(guò)程。只是一個(gè)簡(jiǎn)單DEMO,如果需要的話可以在此基礎(chǔ)上擴(kuò)展。

當(dāng)然後續(xù)我們也會(huì)推出比較複雜的應(yīng)用實(shí)例。

二、具體實(shí)現(xiàn)

1、提供存取介面

這裡不再贅述,參考上一章,微信公眾帳號(hào)開(kāi)發(fā)教學(xué)(二) 基礎(chǔ)框架搭建

2、簽名認(rèn)證和分發(fā)請(qǐng)求不再贅述,參考上一章,微信公眾帳號(hào)開(kāi)發(fā)教程(二) 基礎(chǔ)框架搭建



3、處理請(qǐng)求,並響應(yīng)

1)關(guān)注

當(dāng)微信用戶關(guān)注公眾帳號(hào)時(shí),可以給其適當(dāng)?shù)奶崾???梢允菤g迎詞,可以是幫助提示。

直接上代碼:

????class?EventHandler?:?IHandler
????{????????///?<summary>
????????///?請(qǐng)求的xml????????///?</summary>
????????private?string?RequestXml?{?get;?set;?}????????///?<summary>
????????///?構(gòu)造函數(shù)????????///?</summary>
????????///?<param name="requestXml"></param>
????????public?EventHandler(string?requestXml)
????????{????????????this.RequestXml?=?requestXml;
????????}????????///?<summary>
????????///?處理請(qǐng)求????????///?</summary>
????????///?<returns></returns>
????????public?string?HandleRequest()
????????{????????????string?response?=?string.Empty;
????????????EventMessage?em?=?EventMessage.LoadFromXml(RequestXml);????????????if?(em.Event.Equals("subscribe",StringComparison.OrdinalIgnoreCase))
????????????{????????????????//回復(fù)歡迎消息
????????????????TextMessage?tm?=?new?TextMessage();
????????????????tm.ToUserName?=?em.FromUserName;
????????????????tm.FromUserName?=?em.ToUserName;
????????????????tm.CreateTime?=?Common.GetNowTime();
????????????????tm.Content?=?"歡迎您關(guān)注***,我是大哥大,有事就問(wèn)我,呵呵!\n\n";
????????????????response?=?tm.GenerateContent();
????????????}????????????return?response;
????????}
????}

?2)問(wèn)候

簡(jiǎn)單的交流問(wèn)候,例如你好、幫助等等,跟我們使用微信聊天一樣,不過(guò)回應(yīng)是由我們的程序響應(yīng)。具體功能,可以依照自己的需求進(jìn)行添加。

微信本來(lái)就是溝通的平臺(tái)。這個(gè)案例,可以用於線上服務(wù)機(jī)器人,類(lèi)似淘寶的客服機(jī)器人,可是我們這個(gè)是微信版的。呵呵

其實(shí),很簡(jiǎn)單,取得請(qǐng)求訊息,根據(jù)關(guān)鍵字來(lái)匹配回應(yīng)。當(dāng)然這裡可能要做的工作很多,如何支援智慧匹配,如何支援模糊匹配等。

程式碼如下:

????///?<summary>
????///?文本信息處理類(lèi)????///?</summary>
????public?class?TextHandler?:?IHandler
????{????????///?<summary>
????????///?請(qǐng)求的XML????????///?</summary>
????????private?string?RequestXml?{?get;?set;?}????????///?<summary>
????????///?構(gòu)造函數(shù)????????///?</summary>
????????///?<param name="requestXml">請(qǐng)求的xml</param>
????????public?TextHandler(string?requestXml)
????????{????????????this.RequestXml?=?requestXml;
????????}????????///?<summary>
????????///?處理請(qǐng)求????????///?</summary>
????????///?<returns></returns>
????????public?string?HandleRequest()
????????{????????????string?response?=?string.Empty;
????????????TextMessage?tm?=?TextMessage.LoadFromXml(RequestXml);????????????string?content?=?tm.Content.Trim();????????????if?(string.IsNullOrEmpty(content))
????????????{
????????????????response?=?"您什么都沒(méi)輸入,沒(méi)法幫您啊,%>_<%。";
????????????}????????????else
????????????{????????????????if?(content.StartsWith("tq",?StringComparison.OrdinalIgnoreCase))
????????????????{????????????????????string?cityName?=?content.Substring(2).Trim();
????????????????????response?=?WeatherHelper.GetWeather(cityName);
????????????????}????????????????else
????????????????{
????????????????????response?=?HandleOther(content);
????????????????}
????????????}
????????????tm.Content?=?response;????????????//進(jìn)行發(fā)送者、接收者轉(zhuǎn)換
????????????string?temp?=?tm.ToUserName;
????????????tm.ToUserName?=?tm.FromUserName;
????????????tm.FromUserName?=?temp;
????????????response?=?tm.GenerateContent();????????????return?response;
????????}????????///?<summary>
????????///?處理其他消息????????///?</summary>
????????///?<param name="tm"></param>
????????///?<returns></returns>
????????private?string?HandleOther(string?requestContent)
????????{????????????string?response?=?string.Empty;????????????if?(requestContent.Contains("你好")?||?requestContent.Contains("您好"))
????????????{
????????????????response?=?"您也好~";
????????????}????????????else?if?(requestContent.Contains("傻"))
????????????{
????????????????response?=?"我不傻!哼~?";
????????????}????????????else?if?(requestContent.Contains("逼")?||?requestContent.Contains("操"))
????????????{
????????????????response?=?"哼,你說(shuō)臟話!?";
????????????}????????????else?if?(requestContent.Contains("是誰(shuí)"))
????????????{
????????????????response?=?"我是大哥大,有什么能幫您的嗎?~";
????????????}????????????else?if?(requestContent.Contains("再見(jiàn)"))
????????????{
????????????????response?=?"再見(jiàn)!";
????????????}????????????else?if?(requestContent.Contains("bye"))
????????????{
????????????????response?=?"Bye!";
????????????}????????????else?if?(requestContent.Contains("謝謝"))
????????????{
????????????????response?=?"不客氣!嘿嘿";
????????????}????????????else?if?(requestContent?==?"h"?||?requestContent?==?"H"?||?requestContent.Contains("幫助"))
????????????{
????????????????response?=?@"查詢天氣,輸入tq?城市名稱\拼音\首字母";
????????????}????????????else
????????????{
????????????????response?=?"您說(shuō)的,可惜,我沒(méi)明白啊,試試其他關(guān)鍵字吧。";
????????????}????????????return?response;
????????}
????}

?

3)查詢天氣

這個(gè)功能需要請(qǐng)求實(shí)時(shí)查詢的,請(qǐng)求官方的天氣發(fā)佈網(wǎng)站,然後解析其回傳值,按照我們需要的格式,組織天氣資訊,最後發(fā)送給微信客戶。

採(cǎi)用文字訊息方式處理。

用戶請(qǐng)求,只需輸入:tq 城市名稱/拼音/首字母,即可取得訊息。

回覆的訊息:(以北京為例)

北京
2013年11月6日?星期三
今天:(17℃~4℃)晴北風(fēng)4-5級(jí)轉(zhuǎn)3-4級(jí)4-5級(jí)轉(zhuǎn)3-4級(jí)
24小時(shí)穿衣指數(shù):天氣冷,建議著棉服、羽絨服、皮夾克加羊毛衫等冬季服裝。年老體弱者宜著厚棉衣、冬大衣或厚羽絨服。
明天:(14℃~3℃)晴轉(zhuǎn)多云微風(fēng)小于3級(jí)
48小時(shí)穿衣指數(shù):天氣冷,建議著棉服、羽絨服、皮夾克加羊毛衫等冬季服裝。年老體弱者宜著厚棉衣、冬大衣或厚羽絨服。

來(lái)看源碼吧:

????class?WeatherHelper
????{????????///?<summary>
????????///?城市集合字段????????///?</summary>
????????private?static?Dictionary<string, City>?mCities;????????///?<summary>
????????///?城市集合????????///?</summary>
????????public?static?Dictionary<string, City>?Cities
????????{????????????get
????????????{????????????????if?(mCities?==?null)
????????????????{
????????????????????LoadCities();
????????????????}????????????????return?mCities;
????????????}
????????}????????///?<summary>
????????///?加載城市????????///?</summary>
????????private?static?void?LoadCities()
????????{
????????????mCities?=?new?Dictionary<string, City>();
????????????mCities.Clear();
????????????mCities.Add("101010100",?new?City()?{?Code?=?"101010100",?Name?=?"北京",?PinYin?=?"beijing",?FristLetter?=?"bj"?});
????????????mCities.Add("101020100",?new?City()?{?Code?=?"101020100",?Name?=?"上海",?PinYin?=?"shanghai",?FristLetter?=?"sh"?});
????????????mCities.Add("101200101",?new?City()?{?Code?=?"101200101",?Name?=?"武漢",?PinYin?=?"wuhai",?FristLetter?=?"wh"?});
????????????
????????}????????///?<summary>
????????///?獲取城市的天氣????????///?</summary>
????????///?<param name="name">城市名稱、拼音或首字母</param>
????????///?<returns></returns>
????????public?static?string?GetWeather(string?name)
????????{????????????string?result?=?string.Empty;????????????string?cityCode?=?string.Empty;????????????//獲取城市編碼
????????????IEnumerable<string>?codes?=?from?item?in?Cities????????????????????????????????????????where?item.Value?!=?null
??????????????????????????????????????????????&&?(item.Value.Name.Equals(name,?StringComparison.OrdinalIgnoreCase)?
????????????????????????????????????????????????????||?item.Value.PinYin.Equals(name,?StringComparison.OrdinalIgnoreCase)?
????????????????????????????????????????????????????||?item.Value.FristLetter.Equals(name,?StringComparison.OrdinalIgnoreCase))????????????????????????????????????????select?item.Value.Code;????????????if?(codes?!=?null?&&?codes.Count()?>?0)
????????????{
????????????????cityCode?=?codes.First<string>();
????????????}????????????//http請(qǐng)求,獲取天氣
????????????if?(!string.IsNullOrEmpty(cityCode))
????????????{????????????????string?url?=?"http://ipnx.cn/{0}.html";
????????????????url?=?string.Format(url,?cityCode);
????????????????WebRequest?request?=?HttpWebRequest.Create(url);????????????????//超時(shí)時(shí)間為:2秒
????????????????request.Timeout?=?2000;
????????????????request.Credentials?=?CredentialCache.DefaultCredentials;
????????????????WebResponse?response?=?request.GetResponse();
????????????????StreamReader?reader?=?new?StreamReader(response.GetResponseStream(),?Encoding.UTF8);????????????????string?weahterInfo?=?reader.ReadToEnd();????????????????if?(string.IsNullOrEmpty(weahterInfo))
????????????????{
????????????????????result?=?"暫時(shí)沒(méi)有取到天氣數(shù)據(jù),請(qǐng)稍后再試";
????????????????}????????????????else
????????????????{
????????????????????XmlDocument?doc?=?JsonConvert.DeserializeXmlNode(weahterInfo);????????????????????if?(doc?!=?null)
????????????????????{
????????????????????????XmlNode?node?=?doc.DocumentElement;????????????????????????if?(node?!=?null)
????????????????????????{
????????????????????????????StringBuilder?builder?=?new?StringBuilder();
????????????????????????????builder.Append(node["city"].InnerText).Append("\n");
????????????????????????????builder.Append(node["date_y"].InnerText).Append("?").Append(node["week"].InnerText).Append("\n");
????????????????????????????builder.Append("今天:").Append("(").Append(node["temp1"].InnerText).Append(")").Append(node["weather1"].InnerText).Append(node["wind1"].InnerText).Append(node["fl1"].InnerText).Append("\n");
????????????????????????????builder.Append("24小時(shí)穿衣指數(shù):").Append(node["index_d"].InnerText).Append("\n");
????????????????????????????builder.Append("明天:").Append("(").Append(node["temp2"].InnerText).Append(")").Append(node["weather2"].InnerText).Append(node["wind2"].InnerText).Append(node["fl2"].InnerText).Append("\n");
????????????????????????????builder.Append("48小時(shí)穿衣指數(shù):").Append(node["index48_d"].InnerText).Append("\n");
????????????????????????????result?=?builder.ToString();
????????????????????????}
????????????????????}????????????????????#region?天氣json數(shù)據(jù)格式????????????????????/*
?????????????????
????????????????{
???"weatherinfo":?{
???????"city":?"北京",?
???????"city_en":?"beijing",?
???????"date_y":?"2013年11月4日",?
???????"date":?"",?
???????"week":?"星期一",?
???????"fchh":?"11",?
???????"cityid":?"101010100",?
???????"temp1":?"17℃~5℃",?
???????"temp2":?"16℃~5℃",?
???????"temp3":?"18℃~4℃",?
???????"temp4":?"17℃~5℃",?
???????"temp5":?"14℃~6℃",?
???????"temp6":?"14℃~2℃",?
???????"tempF1":?"62.6℉~41℉",?
???????"tempF2":?"60.8℉~41℉",?
???????"tempF3":?"64.4℉~39.2℉",?
???????"tempF4":?"62.6℉~41℉",?
???????"tempF5":?"57.2℉~42.8℉",?
???????"tempF6":?"57.2℉~35.6℉",?
???????"weather1":?"晴轉(zhuǎn)多云",?
???????"weather2":?"多云",?
???????"weather3":?"多云轉(zhuǎn)晴",?
???????"weather4":?"晴轉(zhuǎn)多云",?
???????"weather5":?"多云轉(zhuǎn)陰",?
???????"weather6":?"陰轉(zhuǎn)晴",?
???????"img1":?"0",?
???????"img2":?"1",?
???????"img3":?"1",?
???????"img4":?"99",?
???????"img5":?"1",?
???????"img6":?"0",?
???????"img7":?"0",?
???????"img8":?"1",?
???????"img9":?"1",?
???????"img10":?"2",?
???????"img11":?"2",?
???????"img12":?"0",?
???????"img_single":?"0",?
???????"img_title1":?"晴",?
???????"img_title2":?"多云",?
???????"img_title3":?"多云",?
???????"img_title4":?"多云",?
???????"img_title5":?"多云",?
???????"img_title6":?"晴",?
???????"img_title7":?"晴",?
???????"img_title8":?"多云",?
???????"img_title9":?"多云",?
???????"img_title10":?"陰",?
???????"img_title11":?"陰",?
???????"img_title12":?"晴",?
???????"img_title_single":?"晴",?
???????"wind1":?"微風(fēng)",?
???????"wind2":?"微風(fēng)",?
???????"wind3":?"微風(fēng)",?
???????"wind4":?"微風(fēng)",?
???????"wind5":?"微風(fēng)",?
???????"wind6":?"北風(fēng)4-5級(jí)",?
???????"fx1":?"微風(fēng)",?
???????"fx2":?"微風(fēng)",?
???????"fl1":?"小于3級(jí)",?
???????"fl2":?"小于3級(jí)",?
???????"fl3":?"小于3級(jí)",?
???????"fl4":?"小于3級(jí)",?
???????"fl5":?"小于3級(jí)",?
???????"fl6":?"4-5級(jí)",?
???????"index":?"較冷",?
???????"index_d":?"建議著大衣、呢外套加毛衣、衛(wèi)衣等服裝。體弱者宜著厚外套、厚毛衣。因晝夜溫差較大,注意增減衣服。",?
???????"index48":?"冷",?
???????"index48_d":?"天氣冷,建議著棉服、羽絨服、皮夾克加羊毛衫等冬季服裝。年老體弱者宜著厚棉衣、冬大衣或厚羽絨服。",?
???????"index_uv":?"中等",?
???????"index48_uv":?"弱",?
???????"index_xc":?"適宜",?
???????"index_tr":?"適宜",?
???????"index_co":?"舒適",?
???????"st1":?"17",?
???????"st2":?"5",?
???????"st3":?"17",?
???????"st4":?"5",?
???????"st5":?"18",?
???????"st6":?"6",?
???????"index_cl":?"適宜",?
???????"index_ls":?"適宜",?
???????"index_ag":?"極不易發(fā)"
???}
}????????????????*/
????????????????????#endregion

????????????????}
????????????}????????????else
????????????{
????????????????result?=?"沒(méi)有獲取到該城市的天氣,請(qǐng)確定輸入了正確的城市名稱,如\'北京\'或者\(yùn)'beijing\'或者\(yùn)'bj\'";
????????????}????????????//返回
????????????return?result;
????????}????????///?<summary>
????????///?內(nèi)部類(lèi):城市????????///?</summary>
????????internal?class?City
????????{????????????///?<summary>
????????????///?編碼????????????///?</summary>
????????????public?string?Code?{?get;?set;?}????????????///?<summary>
????????????///?名稱????????????///?</summary>
????????????public?string?Name?{?get;?set;?}????????????///?<summary>
????????????///?拼音????????????///?</summary>
????????????public?string?PinYin?{?get;?set;?}????????????///?<summary>
????????????///?拼音首字母????????????///?</summary>
????????????public?string?FristLetter?{?get;?set;?}
????????}
????}

教程中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1597
29
PHP教程
1488
72