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

首頁 > 熱點 > 微信 > 正文

微信公眾平臺開發教程(四) 實例入門:機器人回復(附源碼)

2024-07-22 01:16:45
字體:
來源:轉載
供稿:網友

上一篇文章,寫了基本框架,可能很多人會覺得暈頭轉向,這里提供一個簡單的例子來予以說明,希望能幫你解開謎團。

一、功能介紹

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

這里只是提供比較簡單的功能,重在通過此實例來說明公眾平臺的具體研發過程。只是一個簡單DEMO,如果需要的話可以在此基礎上進行擴展。

當然后續我們還會推出比較復雜的應用實例。

二、具體實現

1、提供訪問接口

這里不再贅述,參照上一章,微信公眾賬號開發教程(二) 基礎框架搭建
//m.survivalescaperooms.com/article/98754.htm

2、簽名認證和分發請求

這里不再贅述,參照上一章,微信公眾賬號開發教程(二) 基礎框架搭建
//m.survivalescaperooms.com/article/98754.htm

3、處理請求,并響應

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;    }  }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐边县| 噶尔县| 松桃| 阿鲁科尔沁旗| 尖扎县| 邹城市| 麻城市| 镇沅| 永顺县| 浦江县| 南乐县| 诸城市| 太康县| 将乐县| 吉林市| 新竹县| 仙游县| 准格尔旗| 兰坪| 青铜峡市| 翁源县| 闻喜县| 栖霞市| 北流市| 武定县| 通化市| 吐鲁番市| 威海市| 兴安盟| 应用必备| 巴彦县| 山阴县| 曲水县| 海丰县| 外汇| 沂南县| 章丘市| 榆林市| 通化县| 河津市| 望谟县|