当前位置:   article > 正文

springboot-做个微信机器人每天定时发送新闻的项目_微信客服机器人定时消息推送

微信客服机器人定时消息推送

项目目标

每天早上8点跑定时任务,使用自己的微信小号给群里推送新闻

需要资源

一台阿里云服务器

image.png

注册微秘书和天行数据,微秘书需要充20块钱,可以用一个月

http://wechat.aibotk.com/

https://www.tianapi.com/

实现原理

我理解的大概流程就是这样,微秘书客户端相当于一个桌面版微信,需要扫码登录

实现步骤

1. 编写代码
@Component
public class NewsTask {

    @Autowired
    private WeChatService weChatService;

    @Autowired
    private NewsService newsService;

    @Scheduled(cron = "0 0 8 * * ?")
    public void newsCron() {
        String news = newsService.getNews();
        weChatService.sendToRoom(news, "有钱才算自由");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
@Service
public class WeChatService {

    @Autowired
    private RestTemplate restTemplate;

    public static final String WEI_MI_SHU_API = "https://api-bot.aibotk.com";
    public static final String WEI_MI_SHU_KEY = "你自己的key";


    public void sendToRoom(String content, String roomName) {
        String url = WEI_MI_SHU_API + "/openapi/v1/chat/room";
        WeiMiShuVO weiMiShuVO = new WeiMiShuVO();
        weiMiShuVO.setType(1);
        weiMiShuVO.setContent(content);
        JSONObject object = new JSONObject();
        object.set("apiKey", WEI_MI_SHU_KEY);
        object.set("roomName", roomName);
        object.set("message", weiMiShuVO);
        String response = restTemplate.postForObject(url, object, String.class);
        System.out.println(response);

    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

NewsService中爬虫这步比较麻烦,这里先省略了,可以看具体代码。新闻内容我没有用天行数据的,因为我觉得那个新闻内容很差。我是爬的公众号每日资讯简报中的内容,非常优质。

2. 在微秘书中进行配置

这里协议选大恩,比较稳定,web协议很不稳定

3. 安装和登录微秘书客户端

登录到阿里云,先安装docker。

再拉取微秘书的docker镜像,相关文档在这里https://github.com/leochen-g/wechat-assistant-pro

docker pull aibotk/wechat-assistant
  • 1

后台运行微秘书客户端

docker run -d -e AIBOTK_KEY="微秘书apikey" -e AIBOTK_SECRET="微秘书apiSecret" --name=wechatbot aibotk/wechat-assistant
  • 1

启动以后查看日志

docker logs -f --tail=300 镜像id
  • 1

日志中会打印二维码,用手机扫描登录

202302282033730.png

最后一步,部署启动我自己的应用,可参考我之前这篇用springboot做一个雨雪天气给自己发邮件的项目

测试接口

全部部署完之后用这个接口测试一下,看有没有往微信群里推送消息

@RestController
@RequestMapping("/news")
public class NewsController {

    @Autowired
    private WeChatService weChatService;

    @Autowired
    private NewsService newsService;

    @GetMapping("/send")
    public String sendWeatherReport() {
        try {
            String news = newsService.getNews();
            weChatService.sendToRoom(news, "有钱才算自由");
        } catch (Exception e) {
            e.printStackTrace();
            return "发送失败";
        }
        return "发送成功";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

完整代码

https://github.com/mundane799699/myprojects/tree/master/mail

参考

https://github.com/leochen-g/wechat-assistant-pro

java实现给微信群中定时推送消息

java实现每日给女友微信发送早安等微信信息

java 爬取微信公众号文章 - 搜狗微信搜索

Java 爬取微信公众号文章(文字 + 图片)

docker 命令 查看启动进程及日志

docker 命令 查看启动进程及日志

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/542736
推荐阅读
相关标签
  

闽ICP备14008679号