微信群聊神器上线,DotNET Club借助 WeChaty 沉淀深度技术对话

与一个领域里的专家大牛对话,常有醍醐灌顶之感。有的疑问在我们脑子里徘徊良久不能获得解答,有时是一阵子,有时一留就是数年之久。如同武侠世界里的神童,多年来参悟某个秘籍时不得要领,数年没有长进。如果在某个良辰吉日里,你在一处不起眼的街角路遇高手,正好切中要害一语中的地帮你解答疑问,你茅塞顿开、武功大为精进,从此步入武林高手行列,这将是何等幸事?

幸而在互联网高度发达、信息传播充分高效的今天,通常当我们在技术上遇到问题时,不再需要花费数年之久来参悟。一般来说,现实压力也通常不会允许要花这么久,不然我们连 996 的福报也没有资格享受了。所以,人们通常从搜索引擎上查找已经遇到过类似问题的人所发布的讨论和分享,从开源网站上参考其他人的示例方法,大部分的问题也就能够快速得到解答了。另一方面说,这几乎足以说明不少技术人员的工作内容都是相同、至少是类似的。

如果在搜索引擎上找不到现成的分享,这时就要考虑以某种其他方式来获得解答了。比如,去一些问答网站上发贴求救,或者去一些在线群聊里讨论。一般来说,如果说的不够清楚,就会被管理员一顿批评,大意是“哪里来的菜鸟,问题都不会提!”,或者“扯那么多废话干嘛,先上代码!”如果确实是遇到了群组和社区大佬亲临指点,我们基本上就愉快地忍了,然后速速地按照指点把代码呈上一份、听候进一步的指点。

如果这是一个没有出现过的问题,就会引发大家的围观和讨论,最后问题在讨论中被淹没或者解决。如果这个问题经常出现、太初级,就会被大佬和大家鄙视一番,并被要求回去看书。这时,情况就有点尴尬了。毕竟,我怎么知道该去看哪本书,哪部分?而且,本来这个问题就是在线等的很着急,这会儿我还等着下班呢……

如果这时,人群里冒出来一位善良的姑娘,她打破尴尬给你指出,刚好在三天之前群里还讨论过这个问题,或者给你发来一个独家整理的笔记和总结,你是不是恨不能穿过网线去看她?(然而,人家并不想理你)

那么,问题就来了:我怎么知道前两天讨论过……

所谓大隐隐于市,高手在民间。在日常互联网上,很多即兴对话里蕴含着很多知识,他们当时给围观者带来了帮助,却又很快消失在人们眼中。当不断再度有人谈到时,高手们不再有耐心来解答,低手们也就不再能够获得解答了。他们又绝望地回到了搜索引擎上……无意中有的人却搜到了这个:

情何以堪!

这时,聪明的我在想,大佬们分享的时候,大家都爽,可惜就是像上面这种做笔记的好人太少,而对于日以继夜的大佬们来说,这点小事更是不会上心。如果有一种工具能帮我们把微信群里大佬们的精辟对话导出来,放到某个地方供后人瞻仰、查阅,岂不美哉?

是的,作为关注 .NET Core 的技术社区,dotnet club 就开发了 club-chaty 这样一款工具:它可以将微信群里发生的对话批量导出为 JSON 格式,然后再导入到 dotnet club 网站上,供他人公开查阅这些对话。它的使用步骤是:

  • 用户添加网站的客服号为好友,在网站上完成账号的映射绑定
  • 用户把自己想收藏的对话,“多选”之后合并转发给客服号
  • 待客户号完成对话转换后,由用户选择把已经转换的对话导入到网站上

整体流程如下图:

其中最为关键的就是右上角的“WeChaty 自动转换客服” club-chaty 项目,它能将收到的微信“消息记录”类型的消息导出为 JSON 格式,同时解析并下载其中包含的多媒体消息,包括链接、文件和图片视频等。

之所以它能将微信消息提取到微信之外,这得益于微信消息解析 SDK。club-chaty 开发之初,在选用微信 SDK 的时候,发现社区中的微信 SDK 很多,琳琅满目到处都是,一时之间,难分伯仲。然而,club-chaty 要求能够解析“消息记录”类型的消息,这一硬性要求很快便将绝大多数 SDK 排除在外了。只有 WeChaty 才能完美地提供这些功能。

WeChaty 是由句子互动发布的开源微信 SDK,它直接为微信个人账号赋予编程接口,将个人账号变成自动化应答程序。最重要的是,它能以结构化的方式解析“消息记录”类型的消息。除了解析消息本身,WeChaty 还提供相关的 API 可以下载消息中包含的多媒体内容。这些功能都完美地满足了 club-chaty 的需求。

时不我待,club-chaty 很快就开始了基于 WeChaty 的开发,并在 dotnet club 主站中集成了相关的对话导入流程。作为 dotnet club 网站的一部分,club-chaty 并没有独立地提供线上的网站服务。不过它作为一个软件项目,它的代码与 dotnet club 主站的开发是相互独立的,因此可以单独使用这部分代码。

随着了解 club-chaty 这项功能的人越来越多,逐渐有人关注到它可能带来隐私泄露的风险。比如,张三正跟李四在微信里聊起了他对哪个姑娘刚刚萌生的情愫之后,李四改天就用 club-chaty 这款神器把张三的想法公之于众,页面上还有张三的头像和名字,这还得了。鉴于这种考量,dotnet club 在使用由 club-chaty 导入的数据时,会对对话的内容进行一系列“脱敏”处理。比如,隐去微信对话参与者的原始昵称和头像,换用随机生成的昵称和对话;必须由实名制账号导入对话,并接受原对话参与者的认领和删除等。

在 club-chaty 这种智能导入工具之前,人们如果要留存聊天记录,就需要一张张截图,并利用一些拼图软件将多张图拼到一起作为一个整体进行保存了。相信大家都以这种方式吃过不少大瓜,吃的时候很过瘾,但要么是事后再也找不到了,要么是被吃瓜的当事人信息被泄漏。

而用 club-chaty 导入的聊天记录与截图相比,有诸多好处和优势:

  1. 整个过程操作顺畅、便利
  2. 导出的结果是文本、链接和单张图片等可以二次整理的素材
  3. 导入的结果保存在互联网或笔记软件之后,可以公开查阅和搜索
  4. 可以更好地保护和管理对话参与者的隐私

作为例子,可以来看看导入后的最终效果:https://dotnetclub.net/topics/61

综合来看,基于 WeChaty 实现的 club-chaty 提供的这项功能十分实用,能对具备收藏价值和传播价值的对话内容进行导出、再发布和持久利用,以便解决文章开头的困惑。另一方面,如果某位大牛的发言广为传播,使很多人受益,那么他难道不应该因此收到应有的肯定和赞赏吗?由于 club-chaty 导出的数据中包含原始的发言人账号信息,因此只要使用单向哈希等方式,便可以在保护隐私的同时还能够保留必要的信息以便支持进一步的互动。

(全文完)

本文分享自微信公众号 - DotNet技术平台(DotNetCore_Mements)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CloudBest

托管还是重建,企业如何用好公有云

数字化转型继续为企业的业务发展创造机会。由于英国脱欧的不确定性,英国很多企业正在考虑实施数字化转型计划,以确保业务持续增长。许多人认为数字化转型是提高竞争力的关...

8510
来自专栏sktj

python 根据注册表信息获取你去过的地方

from _winreg import * import mechanize import urllib import re import urlpar...

9620
来自专栏DotNet程序园

ASP.NET Core 中的管道机制

在开始之前,我们需要明确的一个概念是,在 Web 程序中,用户的每次请求流程都是线性的,放在 ASP.NET Core 程序中,都会对应一个 请求管道(requ...

11310
来自专栏DotNet程序园

或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧

  在目前的软件开发的潮流中,不管是前后端分离还是服务化改造,后端更多的是通过构建 API 接口服务从而为 web、app、desktop 等各种客户端提供业务...

10620
来自专栏萌海无涯

用Python写静态博客

MkDocs是一个快速,简单且彻头彻尾的华丽静态站点生成器,旨在构建项目文档。文档源文件以Markdown编写,并使用单个YAML配置文件进行配置。

25520
来自专栏服务器安全专线

打补丁后ASP.NET网站不能访问的解决方法

为了简单,我一直用webservice提供对外接口,dotNetFramwork版本为2.0,一直运行得好好的,最近,服务器上的360安全卫士提示有新的补丁,习...

7800
来自专栏AI科技评论

一文带你了解视觉目标跟踪

视觉目标跟踪(Visual Object Tracking)是计算机视觉领域的一个重要问题。尽管近年来受到了广泛研究,目标跟踪问题由于本身的高难度、高质量数据的...

42720
来自专栏CloudBest

如何构建成功的云迁移计划

采用云计算的好处可能会使组织的所有资源看起来都应立即迁移。无可否认,在某些情况下,公共云平台可以为组织带来巨大的好处。但是在其他情况下,云迁移可能没有意义。

7210
来自专栏DotNet Core圈圈

.net持续集成sonarqube篇之sonarqube安装与基本配置

Sonarqube下载地址是:https://www.sonarqube.org/downloads/下载版本有两个,一个是长期支持版,另一个是最新版,此处安装...

13540
来自专栏DotNet程序园

[开源] 即时通讯组件---ImCore

ImCore 是一款 .NETCore 下利用 WebSocket 实现的简易、高性能、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性...

63640

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励