本期博客主要介绍如何使用 微信SDKAI聊天接口 ,实现 微信机器人功能

准备

  1. 电脑需要安装Go环境,这个可以直接参考菜鸟教程:Go 语言环境安装,知道CSDN的同学基本能在半小时内装好吧…
  2. (可选)一个编译器,可用VS Code或者Goland等。或者你直接用 CMD(终端) 也是可以的;
  3. 如果你不会Go,可以直接私信找我要源码包,安装好Go环境后,执行两行命令就可以运行。

代码分析

本次项目只需要写 76 行代码(含注释和空行),先上代码。

package mainimport ("bytes""encoding/json""fmt""github.com/eatmoreapple/openwechat""io""net/http"
)func main() {//bot := openwechat.DefaultBot()bot := openwechat.DefaultBot(openwechat.Desktop) // 桌面模式,上面登录不上的可以尝试切换这种模式// 注册消息处理函数bot.MessageHandler = func(msg *openwechat.Message) {// 这里可以加自己的回复逻辑,比如匹配到关键字回复、收到到图片回复等 -- by 豆小匠if msg.IsText() {sizhiMsg, _ := getSizhiMsg(msg.Content)_, _ = msg.ReplyText(sizhiMsg)}}// 注册登陆二维码回调bot.UUIDCallback = openwechat.PrintlnQrcodeUrl// 创建热存储容器对象reloadStorage := openwechat.NewFileHotReloadStorage("wechat.json")defer func(reloadStorage io.ReadWriteCloser) {_ = reloadStorage.Close()}(reloadStorage)// 执行热登录if err := bot.HotLogin(reloadStorage, openwechat.NewRetryLoginOption()); err != nil {fmt.Println(err)return}// 阻塞主goroutine, 直到发生异常或者用户主动退出_ = bot.Block()
}type Resp struct {Message string `json:"message"`Data    struct {Type int `json:"type"`Info struct {Text string `json:"text"`} `json:"info"`} `json:"data"`
}// getSizhiMsg 这个是思知AI聊天接口https://api.ownthink.com/bot
func getSizhiMsg(content string) (string, error) {bytesData, _ := json.Marshal(map[string]interface{}{"spoken": content,})resp, err := http.Post("https://api.ownthink.com/bot","application/json",bytes.NewReader(bytesData))if err != nil {return "", err}defer resp.Body.Close()rspBody, err := io.ReadAll(resp.Body)if err != nil {return "", err}ret := Resp{}err = json.Unmarshal(rspBody, &ret)if err != nil {return "", err}return ret.Data.Info.Text, nil
}

可以看到,main函数里主要使用了微信SDK调起微信的登录和微信消息的监听getSizhiMsg函数则是一个普通的POST请求,用于AI聊天对话获取。

运行项目

请确保你安装好了Go环境,打开项目所在目录的terminal终端,在CMD、VS Code或者Goland都无所谓,然后按顺序运行下面两行命令。

# 初始化和运行:
go mod tidy
go run main.go

不出意外的话,你的浏览器现在打开了一个登录二维码界面,微信扫码登录(可能提示异地登录,正常情况),然后让好友给你发个信息,就会发现你的微信会自动回复了~

最后

本文只介绍微信机器人的实现,不建议做商业化用途(有封号风险)。
另外,如果需要本次项目源码包,可以私信我:获取AI微信机器人源码包。(不常看CSDN,回复可能比较慢,谅解下~)

如何用76行代码写一个AI微信机器人......相关推荐

  1. Python 人工智能大全之3行代码创建一个 AI 论文机器人

    Python 是一种广泛使用的编程语言,易于学习且用途广泛.它可用于为各种任务创建程序,例如数据分析.Web 开发和人工智能 (AI) 编写.在本文中,我们将向您展示可用于创建 AI 论文作者的三行 ...

  2. ds--8600使用手册_我如何用57行代码复制一个价值8600万美元的项目

    ds--8600使用手册 by Tait Brown 泰特·布朗(Tait Brown) 我如何用57行代码复制一个价值8600万美元的项目 (How I replicated an $86 mill ...

  3. [教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端

    我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权.我独立开发了<联机桌游合集>,是个网页,可以很方便的跟朋友联机 ...

  4. 真香!如何用300行代码写完一个Spring基本框架?

    Spring是一个非侵入性(non-invasive)框架,其目标是使应用程序代码对框架的依赖最小化,应用代码可以在没有Spring或者其他容器的情况下运行. 看spring的源码,学习spring, ...

  5. PONG - 100行代码写一个弹球游戏

    大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...

  6. python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫

    相信用别的语言只用14行是写不出来这样的效果的!而我们的Python 只需要区区的14行代码就能写出来哦! 这就是Python为什么是全球现在比较流行的语言之一了!因为简单 容易学! 比较上手! 现在 ...

  7. 100行代码写一个Compose版华容道

    之前写过几个 Compose 的 demo,但一直没使用到 Gesture, Theme 等特性,于是写了一个华容道的小程序来展示上述这些特性.写完后又一次被 Compose 的生产力所折服,整个程序 ...

  8. python3GUI--200行代码写一个上课点名程序(附源码)

    文章目录 一.准备工作 1.Tkinter 2.PIL 二.预览 1.启动 2.开始点名-顺序点名 3.开始点名-随机点名 4.手动加载人名单 5.开始点名-顺序点名-Pyqt5版本 6.人名单格式 ...

  9. python闹钟界面源码_Python GUI 教程 25行代码写一个小闹钟

    今天我们讲一下用Python写的GUI小程序.一个小闹钟(只是屏幕提示,没有声音哦) 让我们先介绍这个闹钟如何奇葩. 需要通过命令行启动. 没有标题栏. 没菜单. 甚至没有关闭按钮. 没有运行界面. ...

最新文章

  1. IBM AI辩手对战世界级人类辩手,炒作还是秀肌肉?
  2. zoj-3471 Most powful
  3. 5M1E,软件质量管理最佳解决方案
  4. 包含html语言的超链接标记的网页_零基础入门 HTML 的 8 分钟极简教程
  5. java referencemap_Java中TypeReference用法说明
  6. BSD配置SSH服务
  7. 修改同一张表的同一个字段的两个不同的值。
  8. 一款好看的提示框-------记录一下地址
  9. linux系统中db2创建表空间,为DB2数据库创建表空间
  10. 解决混合模式程序集在VS2010 .net 4.0 环境下调试出错的方法。
  11. html选择区域高亮,css+js实现部分区域高亮可编辑遮罩层
  12. 请求到达时先经过过滤器还是拦截器_上海自动卷绕式过滤器价格_康斐净化
  13. 如何macOS 上优雅的使用 Gaussian 09 与GaussView 6
  14. 微信小程序展示弹窗的几种方式
  15. 粒子群优化算法PSO
  16. HBase流程框架图
  17. 多线程下载视频,并运用Fmmpeg合成
  18. 第三方支付接口之微信扫码支付
  19. 微信支付 APP支付 Java 服务器端
  20. Redis过期键的删除策略

热门文章

  1. 【字体反爬】猫X眼YingShi,我们又来欺负你了,用到了 OCR 识别技术
  2. Ubuntu18.04安装compiz后死机无法进入图形桌面,提示watchdog: BUG: soft lockup - CPU#1 stuck for 22s!如何解决,测试有效!
  3. 函数可导和可微的区别: 一元中互为充要;多元中可微是可导的必要条件,可导不一定可微。
  4. ubuntu 安装anconda
  5. redis哨兵、cluster
  6. 国威交换机编程话机调试
  7. 保险业务与系统——LOMA 290 保险公司运营——第三讲——寿险公司的组建和重组
  8. 基于SSH在线服装销售系统(购物商城)
  9. FDATool设计FIR低通滤波器
  10. Android 本机号码的获取