• 如何使用golang操作微信


    openwechat

    golang版个人微信号API, 类似开发公众号一样,开发个人微信号

    使用前提

    golang版本大于等于1.11

    安装

    go get

    go get github.com/eatMoreApple/openwechat
    

    快速开始

    登录微信

    package main
    
    import (
    	"fmt"
    	"github.com/eatMoreApple/openwechat"
    )
    
    func main() {
    	messageHandler := func(msg *openwechat.Message) {
    		fmt.Println(msg)
    	}
    	bot := openwechat.DefaultBot()
        
        // 注册消息处理函数
    	bot.MessageHandler = messageHandler
        // 设置默认的登录回调
        // 可以设置通过该uuid获取到登录的二维码
    	bot.UUIDCallback = openwechat.PrintlnQrcodeUrl
        // 登录
    	if err := bot.Login(); err != nil {
    		fmt.Println(err)
    		return
    	}
        // 阻塞主程序,直到用户退出或发生异常
    	bot.Block()
    }
    

    突破网页版登录限制

    网页版登陆不上的可以尝试使用该模式登陆

    bot := openwechat.DefaultBot(openwechat.Desktop)
    

    回复消息

    messageHandler := func(msg *openwechat.Message) {
    		msg.ReplyText("hello")
    }
    

    获取消息的发送者

    messageHandler := func(msg *openwechat.Message) {
    		sender, err := msg.Sender()
    }
    

    获取所有的好友

    // 登录之后调用
    self, err := bot.GetCurrentUser()
    if err != nil {
        fmt.Println(err)
        return
    }
    friends, err := self.Friends()
    

    发送消息给好友

    self, err := bot.GetCurrentUser()
    if err != nil {
        fmt.Println(err)
        return
    }
    friends, err := self.Friends()
    if err != nil {
        fmt.Println(err)
        return
    }
    if friends.Count() > 0 {
        // 发送给第一个好友
        friends[0].SendText("你好")
    }
    

    发送图片消息

    friends, err := self.Friends()
    if err != nil {
        fmt.Println(err)
        return
    }
    if friends.Count() > 0 {
        // 发送给第一个好友
        img, _ := os.Open("test.png")
        defer img.Close()
        friends[0].SendImage(img)
    }
    bot.Block()
    

    搜索好友

    friends, err := self.Friends()
    if err != nil {
        fmt.Println(err)
        return
    }
    results := friends.Search(1, func(friend *Friend) bool { return friend.User.RemarkName == "阿青" }, func(friend *Friend) bool { return friend.Sex == 2 }) // 查找数量为1符合条件的好友
    fmt.Println(results)
    

    搜索群组

    groups, err := self.Groups()
    if err != nil {
        fmt.Println(err)
        return
    }
    results := group.Search(1, func(group *Group) bool { return group.NickName == "厉害了" }) 
    fmt.Println(results)
    

    更多功能请在代码中探索。。。

    // todo: add more support

  • 相关阅读:
    [Nowcoder] 寻找子串
    [LeetCode] Generate Parentheses
    [Nowcoder] 字符串是否由字串拼接
    ananconda3中QTDesigner无法输入中文
    [Paddle学习笔记][13][基于YOLOv3的昆虫检测-测试模型]
    [Paddle学习笔记][12][基于YOLOv3的昆虫检测-模型预测]
    [Paddle学习笔记][11][基于YOLOv3的昆虫检测-训练模型]
    [Paddle学习笔记][10][基于YOLOv3的昆虫检测-损失函数]
    [Paddle学习笔记][09][基于YOLOv3的昆虫检测-模型设计]
    [Paddle学习笔记][08][基于YOLOv3的昆虫检测-数据处理]
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/14697504.html
Copyright © 2020-2023  润新知