基于网页版微信实现的微信SDK(Kotlin版,兼容Java)

本文介绍了使用Kotlin开发的网页版微信SDK,包括消息处理流程、二维码扫描解决方案以及SDK的使用示例,如消息发送和转发群消息。项目已开源,可在服务器环境下运行。
摘要由CSDN通过智能技术生成

跟朋友合作开发一个小项目,需要实现一个微信个人号机器人。他的首选语言是Java,基于一个码农的懒惰,我就选择了Kotlin作为我的开发语言(我们各自负责不同模块)。本身我对实现一个微信个人号SDK也是蛮有兴趣的,就没有使用第三方的轮子,着手使用Kotlin重新实现了一个网页版微信的SDK。

网页版微信消息处理流程

首先是分析微信网页版的消息处理流程:

  • 获取UUID
  • 下载二维码,等待扫码
  • 获取登录认证信息
  • 初始化微信应用
  • 同步消息和获取对话列表
  • 发送消息

二维码扫描问题

因为程序要放到服务器环境上面运行,而服务器上面并没有图形界面。二维码的处理就较为繁琐,为此参考kdepp/tty_qr.py 实现了Kotlin版本的二维码Terminal输出工具。


const val BLOCK = "MM"
const val BLACK = "  "

/**
 * 二维码输出工具
 * */
class QRPrinter(private val img: BufferedImage) {
   
    constructor(input: InputStream) : this(ImageIO.read(input))

    private fun qrString(size: Int = 37, padding: Int = 3): String {
        val builder = StringBuffer()
        val times = img.width / (size + padding * 2)
        (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值