亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過微信公眾平臺實現在線客服機器人功能

發布時間:2021-09-13 09:44:14 來源:億速云 閱讀:132 作者:小新 欄目:移動開發

這篇文章主要介紹了如何通過微信公眾平臺實現在線客服機器人功能,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

通過微信公眾平臺實現在線客服機器人功能。主要的功能包括:簡單對話、查詢天氣等服務。

1)關注

當微信用戶關注公眾賬號時,可以給其適當的提示。可以是歡迎詞,可以是幫助提示。

直接上代碼:

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

簡單的交流問候,比如你好、幫助等等,跟我們使用微信聊天一樣,不過回應是由我們的程序響應。具體功能,可以根據自己的需要進行添加。
微信本來就是溝通的平臺。這個案例,可以用于在線服務機器人,類似于淘寶的客服機器人,可是我們這個是微信版的。呵呵
其實,很簡單,獲取請求消息,根據關鍵字來匹配回應。當然這里可能要做的工作很多,如何支持智能匹配,如何支持模糊匹配等。

代碼如下:

    /// <summary>
    /// 文本信息處理類    /// </summary>
    public class TextHandler : IHandler
    {        /// <summary>
        /// 請求的XML        /// </summary>
        private string RequestXml { get; set; }        /// <summary>
        /// 構造函數        /// </summary>
        /// <param name="requestXml">請求的xml</param>
        public TextHandler(string requestXml)
        {            this.RequestXml = requestXml;
        }        /// <summary>
        /// 處理請求        /// </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 = "您什么都沒輸入,沒法幫您啊,%>_<%。";
            }            else
            {                if (content.StartsWith("tq", StringComparison.OrdinalIgnoreCase))
                {                    string cityName = content.Substring(2).Trim();
                    response = WeatherHelper.GetWeather(cityName);
                }                else
                {
                    response = HandleOther(content);
                }
            }
            tm.Content = response;            //進行發送者、接收者轉換
            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 = "哼,你說臟話! ";
            }            else if (requestContent.Contains("是誰"))
            {
                response = "我是大哥大,有什么能幫您的嗎?~";
            }            else if (requestContent.Contains("再見"))
            {
                response = "再見!";
            }            else if (requestContent.Contains("bye"))
            {
                response = "Bye!";
            }            else if (requestContent.Contains("謝謝"))
            {
                response = "不客氣!嘿嘿";
            }            else if (requestContent == "h" || requestContent == "H" || requestContent.Contains("幫助"))
            {
                response = @"查詢天氣,輸入tq 城市名稱\拼音\首字母";
            }            else
            {
                response = "您說的,可惜,我沒明白啊,試試其他關鍵字吧。";
            }            return response;
        }
    }
3)查詢天氣

這個功能需要請求實時查詢的,請求官方的天氣發布網站,然后解析其返回值,按照我們需要的格式,組織天氣信息,最后發送給微信客戶。
采用文本消息方式處理。
用戶請求,只需輸入:tq 城市名稱/拼音/首字母,即可獲取消息。

回復的消息:(以北京為例)

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

來看源碼吧:

    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請求,獲取天氣
            if (!string.IsNullOrEmpty(cityCode))
            {                string url = "http://www.php.cn/{0}.html";
                url = string.Format(url, cityCode);
                WebRequest request = HttpWebRequest.Create(url);                //超時時間為: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 = "暫時沒有取到天氣數據,請稍后再試";
                }                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小時穿衣指數:").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小時穿衣指數:").Append(node["index48_d"].InnerText).Append("\n");
                            result = builder.ToString();
                        }
                    }                    #region 天氣json數據格式                    /*
                 
                {
   "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": "晴轉多云", 
       "weather2": "多云", 
       "weather3": "多云轉晴", 
       "weather4": "晴轉多云", 
       "weather5": "多云轉陰", 
       "weather6": "陰轉晴", 
       "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": "微風", 
       "wind2": "微風", 
       "wind3": "微風", 
       "wind4": "微風", 
       "wind5": "微風", 
       "wind6": "北風4-5級", 
       "fx1": "微風", 
       "fx2": "微風", 
       "fl1": "小于3級", 
       "fl2": "小于3級", 
       "fl3": "小于3級", 
       "fl4": "小于3級", 
       "fl5": "小于3級", 
       "fl6": "4-5級", 
       "index": "較冷", 
       "index_d": "建議著大衣、呢外套加毛衣、衛衣等服裝。體弱者宜著厚外套、厚毛衣。因晝夜溫差較大,注意增減衣服。", 
       "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": "極不易發"
   }
}                */
                    #endregion

                }
            }            else
            {
                result = "沒有獲取到該城市的天氣,請確定輸入了正確的城市名稱,如\'北京\'或者\'beijing\'或者\'bj\'";
            }            //返回
            return result;
        }        /// <summary>
        /// 內部類:城市        /// </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; }
        }
    }

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何通過微信公眾平臺實現在線客服機器人功能”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浦县| 工布江达县| 河南省| 康平县| 湘阴县| 潼南县| 潜江市| 新巴尔虎右旗| 崇阳县| 揭阳市| 旺苍县| 盱眙县| 交口县| 桃江县| 仲巴县| 鞍山市| 建湖县| 淄博市| 徐闻县| 水城县| 靖州| 陵水| 庄河市| 武邑县| 呼图壁县| 观塘区| 峨边| 手游| 红河县| 拉萨市| 郸城县| 巴彦县| 桦甸市| 乐亭县| 天柱县| 潢川县| 无极县| 奉贤区| 泸水县| 大城县| 郁南县|