zoukankan      html  css  js  c++  java
  • 如何使用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

  • 相关阅读:
    ejbca 无其他数据库支持情况下的安装
    VC巨资注入开源软件产业 商业模式仍需摸索
    EJBCA 3.0 开源CA系统软件初探
    ejbca安装指南
    Navicat for ORACLE 导出数据
    cannot create oci environment/Navicat for oracle
    EL表达式 (详解)
    10个步骤让你成为高效的Web开发者
    jquery.validationEngine+ajax验证
    让您的 web 应用程序飞起来
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/14697504.html
Copyright © 2011-2022 走看看