美文网首页程序猿的进阶屋
微信个人号实现微信好友和微信群自动发送消息

微信个人号实现微信好友和微信群自动发送消息

作者: 大师兄爱上芭蕉扇 | 来源:发表于2019-01-24 19:36 被阅读74次

    实现思路,利用微信网页版API,登陆微信,获取好友和群组信息,调用微信web端API发送消息

    1、安装lombok

    在本地开发环境安装 lombok 插件并确保你的 Java 环境是 1.7+

           <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.18</version>
                <scope>provided</scope>
            </dependency>
    

    2、添加依赖

    <dependency>
        <groupId>io.github.biezhi</groupId>
        <artifactId>wechat-api</artifactId>
        <version>1.0.6</version>
    </dependency>
    

    该依赖中包含了日志组件,默认是 logback,如果你的系统中需要其他的日志组件,请先排除 logback

    <dependency>
        <groupId>io.github.biezhi</groupId>
        <artifactId>wechat-api</artifactId>
        <version>1.0.6</version>
        <exclusions>
            <exclusion>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    3 创建微信机器人

    机器人 WeChatBot 对象可被理解为一个 Web 微信客户端。创建一个 Java 类作为我们的机器人,比如 HelloBot

    package com.topcom.cms.spider.weixin;
    
    import io.github.biezhi.wechat.WeChatBot;
    import io.github.biezhi.wechat.api.constant.Config;
    import lombok.extern.slf4j.Slf4j;
    
    @Slf4j
    public class HelloBot extends WeChatBot {
    
    //登陆二维保存路径
        private static String assetsDir = "C:/QRCodePath/";
    
        private volatile static HelloBot helloBot;
    
        public static void setAssetsDir(String assetsDir) {
            HelloBot.assetsDir = assetsDir;
        }
    
        public static HelloBot getInstance(){
            if(helloBot == null){
                synchronized (HelloBot.class){
                   if(helloBot ==null){
                       helloBot = new HelloBot(Config.me().autoLogin(true).assetsDir(assetsDir).showTerminal(true));
                   }
                }
            }
            return helloBot;
        }
        private HelloBot(Config config) {
            super(config);
        }
    
        public static void main(String[] args) {
            getInstance().start();
        }
    }
    

    其他WeChatBot操作可以参考微信个人号API
    https://biezhi.github.io/wechat-api/#/

    package com.topcom.cms.spider.weixin;
    
    import com.topcom.cms.spider.core.config.SpiderConfigAware;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.stereotype.Component;
    
    /**
     * @Author shaol
     * @Date 2019年1月24日
     */
    @Component
    public class WeixinBoot implements CommandLineRunner, SpiderConfigAware {
        @Override
        public void run(String... args) throws Exception {
            HelloBot.setAssetsDir(spiderConfig.getWechatCode());
            HelloBot.getInstance().start();
        }
    
    /**
         * 根据好友的昵称
         * @param nickName 好友昵称
         * @param msg 发送消息
         */
        public Boolean sendMsg(String nickName, String msg) {
            HelloBot helloBot = HelloBot.getInstance();
            if (null != helloBot) {
                String fromUserName = helloBot.api().getAccountByName(nickName).getUserName();
                return helloBot.sendMsg(fromUserName, msg);
            }
            return false;
        }
    }
    
    

    注:用户的nickname可以重复,UserName不会重复,但是每次登陆后UserName会变化,可以用在每次登陆后保存UserName,调用helloBot.api().getAccountById来获取用户信息。

    参考文档:

    https://biezhi.github.io/wechat-api/
    https://github.com/biezhi/wechat-api
    感谢好友LI木水推荐的微信个人API
    https://www.jianshu.com/u/14313cc03bd0

    相关文章

      网友评论

        本文标题:微信个人号实现微信好友和微信群自动发送消息

        本文链接:https://www.haomeiwen.com/subject/vwpujqtx.html