旅游电子商务网站建设背景,黄页网址大全,网站建设十,建设银行官方网站买五粮液酒转载请注明出处#xff01;
原文链接#xff1a;https://blog.csdn.net/zgyulongfei/article/details/140960430 本文适合的读者为#xff1a;
抖店#xff08;抖音小店#xff09;个体商家#xff1b;抖店店群商家#xff08;店群商家#xff1a;指的是开了几十个抖…转载请注明出处
原文链接https://blog.csdn.net/zgyulongfei/article/details/140960430 本文适合的读者为
抖店抖音小店个体商家抖店店群商家店群商家指的是开了几十个抖店的商家想要开发一款抖店自动回复工具的技术人员/团队想学习浏览器自动回复技术的程序员 省流介绍
如果您是抖店商家可以下载优化过的完善版工具体验不用查看技术教程。非商家不要下载非商家不要下载非商家不要下载因为需要有店铺才能用下载地址https://www.yunpan.com/surl_y9HVpCnUCAD 提取码9d35如果您是技术人员可以细细查看文章可在文末下载源代码。 目录
一、抖店飞鸽客服系统简介
二、自动回复的原理
三、开发环境与第三方类库
四、创建窗体应用
五、安装第三方JSON库
六、安装浏览器组件
七、软件主窗体设计
八、在主窗体加载抖店飞鸽客服网页
九、识别顾客发送的消息并自动回复
十、创建自动回复规则库
十一、功能扩展
十二、源码下载 一、抖店飞鸽客服系统简介
抖店是抖音官方退出的购买产品的服务程序商家在抖店平台上开店后需要与顾客沟通抖店提供了飞鸽客服系统让商家与顾客进行有效沟通。
抖店飞鸽客服系统界面展示 目前抖店飞鸽客服系统已经非常完善了抖店官方也推出了【机器人】功能帮助商家更高效地回复顾客。 对于咨询量不大的商家而言平台自带的【机器人】功能已经足够使用了。
然而对于店铺数量多日常咨询量大的商家来说平台自带的【机器人】功能有时候会显得心有余而力不足。因为顾客给商家发送的客服消息商家必须在3分钟内进行答复。当【机器人】遇到不会回答的消息时而此时抖店商家非常繁忙无法及时给顾客答复消息时会导致3分钟回复率降低。 什么是3分钟回复率 顾客发送消息给商家后商家需要在3分钟内答复顾客的咨询。3分钟回复率的计算方式是在3分钟内回复的顾客咨询消息数除以顾客咨询消息总数。快手平台要求这一比率不得低于80%否则会影响店铺评分。 为了提高客服的3分钟回复率 网店应该请足够多的人工客服人员来接待顾客的咨询。
然而对于大部分利润微薄的抖店商家来说请人工客服专员的成本非常高网店的经营利润根本无法承担。
此时要是网店主有一款客服自动回复工具就可以减轻日常的工作量减少店铺运营成本进而提高网店的利润。 二、自动回复的原理
目前抖店飞鸽系统有电脑客户端软件、网页版客服、手机版几种形式。
本文的自动回复教程是对接飞鸽网页版客服系统通过识别网页上的文字匹配回复规则后再进行回复。
相当于是做一款飞鸽客服网页的浏览器插件插件的主要功能是识别抖店飞鸽客服上顾客发送的咨询消息然后匹配自定义的回复话术规则再将匹配到的回复语发送给顾客。 三、开发环境与第三方类库
编程语言及框架c# WinForm
开发工具Visual Studio 2017
应用程序运行环境.Net Framework 4.5.2
Json库Newtonsoft.Json v10.0.3
浏览器组件CefSharp.WinForms v85.3.130 四、创建窗体应用 打开VS2017后创建一个Windows窗体应用.Net Framework。
目标框架选择.NET Framework 4.5.2
应用名称填写抖店自动回复软件 五、安装第三方JSON库
既然是开发一款自动回复工具那么就必须要有一个自动回复规则库 来保存顾客咨询问题的关键词与答复语之间的对应关系。
当顾客咨询时软件去规则库中查找新消息是否包含规则中的关键词关键词匹配后将关键词对应的答复语发送给顾客。
自动回复规则库应该由商家根据店铺的主营商品、商品规格、发货时间、发货地点等情况合理设置因此需要一个本地数据库。本地数据库一般使用SQLite它是一款免费的轻量级数据库。
由于本文作为开发范例主要目的是让读者方便理解与实践本教程的规则库采用Json格式保存在文件中因此需要用到第三方JSON库Newtonsoft.Json。 JSON库安装方法点击VS2017菜单【项目】-【管理NuGet程序包】 切换菜单为【浏览】然后搜索Newtonsoft.Json下拉框中选择v10.0.3版本并安装 六、安装浏览器组件
由于需要对接抖店飞鸽网页版客服因此需要一个浏览器组件来加载和显示飞鸽客服网页之后再通过操作浏览器组件来实现识别客服文字以及自动回复。
在Winform中添加一个浏览器控件现在一般使用第三方开源组件CefSharp.WinForms。
在NuGet中搜索CefSharp.Winfoms选择v85.3.130版本后安装。 由于CefSharp不支持以Any CPU模式运行程序所以需要在配置管理器中指定运行平台为x86或x64。调整后的截图如下 七、软件主窗体设计
软件主窗体需要显示一个【抖店飞鸽客服网页】以及一些功能性按钮【设置回复规则、开启自动回复、关闭自动回复】。 浏览器组件嵌套在一个Dock.Fill的Panel中功能区使用MenuStrip组件并创建菜单项。 八、在主窗体加载抖店飞鸽客服网页
在项目上新建CefHelper类用来初始化CefSharp.Winforms组件的初始化配置。 CefHelper类中的代码如下
class CefHelper{public static readonly string WebCachePath Application.StartupPath \\cache;public static void InitCef(){Cef.EnableHighDPISupport();CefSettings settings new CefSettings{Locale zh-CN,AcceptLanguageList zh-CN,zh;q0.9,UserAgent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36,PersistUserPreferences true,PersistSessionCookies true,RootCachePath WebCachePath};settings.CefCommandLineArgs.Add(disable-features, WebRtcHideLocalIpsWithMdns);Cef.Initialize(settings);}} 接着在应用程序入口点调用CefSharp的初始化代码 CefSharp初始化完毕之后才能创建浏览器组件。
创建浏览器组件不能用常规拖放控件的方式必须使用代码创建浏览器组件类名为ChromiumWebBrowser。 创建方法在主窗体Form1中编写创建方法CreateWebBrowser()来创建一个ChromiumWebBrowser控件并将其放在主窗体的Panel中。 /// summary/// 创建飞鸽客服浏览器/// /summary/// returns/returnsprivate ChromiumWebBrowser CreateFeiGeWebBrowser(){//浏览器启动时初始化显示的飞鸽客服网址string initUrl https://im.jinritemai.com/pc_seller_v2/main/workspace;ChromiumWebBrowser fgBrowser new ChromiumWebBrowser(initUrl){RequestContext new RequestContext(new RequestContextSettings(){PersistSessionCookies true,PersistUserPreferences true,CachePath CefHelper.WebCachePath})};//将浏览器添加到Panelpanel_Browser.Controls.Add(fgBrowser);//return fgBrowser;} 在主窗体构造函数中调用此方法 运行程序后效果如下 飞鸽客服网页已经打开先登录抖店店铺方便后续操作 九、识别顾客发送的消息并自动回复
为了获取用户发送的消息需要使用到JavaScript技术利用js代码获取网页元素中的内容。 抖店飞鸽客服会把新的咨询顾客放在【当前会话】中。 要识别是否有新消息需要识别顾客行上是否有显示时间这个时间表示顾客发信息了多长时间。 由于抖店飞鸽网页中的元素class都是乱码无法直接通过getElementsByClassName来定位到元素 因此需要根据文字内容来识别获取所有同一种元素标签的集合然后循环遍历这个标签集合去找到其中的元素包含时、分、秒的关键词进而定位到元素。
检测到当前会话列表含有未回复的顾客时点击顾客加载对话内容参考代码如下
var doms document.getElementsByClassName(i-icon i-icon-icon-collection-solid);
for (var i 0; i doms.length; i) {var d doms[i];var f1 d.parentElement;if (f1) {var f2 f1.parentElement;if (f2) {var f3 f2.parentElement;if (f3) {var timeSpan f3.textContent.trim();if (timeSpan.indexOf(秒) 0 || timeSpan.indexOf(分) 0 || timeSpan.indexOf(时) 0) {f3.click();break;}}}}
} 点击完顾客后获取顾客发送的最后一条信息自动回复仅匹配最后一条信息即可 用js编写如下代码即可获取到最后一条信息 获取到顾客最后一条信息之后去自动回复规则库中匹配回复语然后将回复语填充到文本输入框中发送给顾客规则库如何设计在后面章节中说明。
假设回复语为ok
那么在文本框中填充文字的js代码为
document.getElementsByTagName(textarea)[0].valueok
填充后效果为 但是点击【发送】按钮后系统却提示 明明已经在文本框中填充了【ok】文字了为什么发送的时候却提示文本为空呢
原因是网页系统监听了文本框事件只有打字进去才会识别已输入设置元素的value无效。 那么如何解决呢
可以将文字【ok】复制到剪切板然后在将剪切板的文字粘贴到textarea中即可。此种方法需要占用剪切板实现效果不是很好。也有不占用剪切板更高效且简单的方法感兴趣的可以与作者联系。 整个自动回复过程为
检测新消息获取顾客发送的最后一条消息填充回复语点击发送
将js代码封装到c#中由c#调用js代码。编写JsHelper类 JsHelper内编写几个静态方法供调用
GetUnreplyMsgCountGetCustomerLastAskMsgInputReplyMsgClickSendButtonClickFirstCustomer
具体源代码可以在文末下载 接着在主窗体Form1中创建一个线程每隔5秒定时检测一次是否有未回复的消息如果有消息就去回复一次。
private void StartAutoReplyTask(ChromiumWebBrowser b){Task.Factory.StartNew(() {//等待一会儿再开始执行轮询线程Thread.Sleep(2000);//循环检测消息while (true){if (OpenAutoReplyTask){//检测是否有新消息while (JsHelper.GetUnreplyMsgCount(b) 0){//点击第一个顾客JsHelper.ClickFirstCustomer(b);//等待聊天对话加载Thread.Sleep(1000);//获取此顾客最后一条消息string lastMsg JsHelper.GetCustomerLastAskMsg(b);//根据顾客消息匹配回复语string replyMsg GetReplyMsg(lastMsg);//在聊天文本框中填充回复语JsHelper.InputReplyMsg(b, replyMsg);//点击发送按钮JsHelper.ClickSendButton(b);//回复完每一个顾客都等几秒防止页面反应慢这个顾客还在【请在3分钟内回复】菜单内Thread.Sleep(3000);}}//执行完一遍流程后等待5秒再继续执行下一轮Thread.Sleep(5000);}}, TaskCreationOptions.LongRunning);}
上面代码中的方法GetReplyMsg()是去规则库中获取匹配到的回复语将在下一节说明。 十、创建自动回复规则库
为了能让自动回复软件根据顾客的问题回答不同的回复语必须创建一个回复规则库。
为了便于理解与实践本文采用Json文件存储规则库。
新建类Rules用来存储关键词与回复语的映射关系。 /// summary/// 单条规则/// /summaryclass RuleItem{/// summary/// 规则关键词/// /summarypublic string Keyword { get; set; }/// summary/// 关键词匹配的回复语/// /summarypublic string ReplyMsg { get; set; }} 创建RuleHelper类用来操作规则库增、删、改、查 Helper类中的方法
SaveJsonToFileAddRuleFindRuleReply 在哪个地方做增删改查
需要创建一个规则库窗口FormRules然后在窗口上进行操作 在按钮添加事件增加规则即可。
运行软件后打开规则窗体添加规则效果 规则文件rules.json内容 发消息测试 运行效果说明软件能正常地根据顾客的消息回复对应的答复语。 十一、功能扩展
这个抖店飞鸽自动回复软件只是一个简单的样例距离完善还有很大的距离。
功能可扩展的地方还有很多如
支持多关键词匹配支持完全匹配与包含匹配规则库可修改、删除能保存历史回复记录能店铺多开同时回复能根据不同店铺回复不同话术………… 十二、源码下载
CSDN下载地址https://download.csdn.net/download/zgyulongfei/89623129