微信机器人java-wechaty

wechaty docker微服务

# wechaty 最新版本(部分客户端还无法兼容)
docker run -it -d --name wechaty_test -e WECHATY_LOG="verbose" -e WECHATY_PUPPET="wechaty-puppet-padlocal" -e WECHATY_PUPPET_PADLOCAL_TOKEN="你的token" -e WECHATY_PUPPET_SERVER_PORT="8080" -e WECHATY_TOKEN="lqSaPuhivEg4ghY3Gbw6SuUF7dWMdh761" -p "8080:8080" wechaty/wechaty:latest# wechaty 0.65版本
docker run -it -d --name wechaty_test -e WECHATY_LOG="verbose" -e WECHATY_PUPPET="wechaty-puppet-padlocal" -e WECHATY_PUPPET_PADLOCAL_TOKEN="你的token" -e WECHATY_PUPPET_SERVER_PORT="8080" -e WECHATY_TOKEN="lqSaPuhivEg4ghY3Gbw6SuUF7dWMdh761" -p "8080:8080" wechaty/wechaty:0.65

获取pad token

获取pad token网址:http://pad-local.com

java pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><groupId>io.github.wechaty</groupId><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.5</version><relativePath /></parent><artifactId>wechaty-examples</artifactId><name>wechaty-examples</name><version>1.0.0-SNAPSHOT</version><properties><kotlin.compiler.incremental>true</kotlin.compiler.incremental><kotlin.version>1.3.72</kotlin.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><scope>compile</scope></dependency><dependency><groupId>io.github.wechaty</groupId><artifactId>wechaty</artifactId><version>0.1.5-SNAPSHOT</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.13.1</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.13.2</version></dependency><dependency> <!-- 桥接:告诉Slf4j使用Log4j2 --><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.13.1</version></dependency><!-- https://mvnrepository.com/artifact/com.lmax/disruptor --><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>3.4.2</version></dependency></dependencies><repositories><repository><id>oss-sonatype</id><name>oss-sonatype</name><url>https://oss.sonatype.org/content/repositories/snapshots/</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>alimaven</id><name>aliyun maven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>aliyun-plugin</id><url>https://maven.aliyun.com/repository/public</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version><configuration><source>1.8</source><target>1.8</target></configuration><executions><!-- 替换会被 maven 特别处理的 default-compile --><execution><id>default-compile</id><phase>none</phase></execution><!-- 替换会被 maven 特别处理的 default-testCompile --><execution><id>default-testCompile</id><phase>none</phase></execution><execution><id>java-compile</id><phase>compile</phase><goals><goal>compile</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.1.1</version><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals><configuration><archive><manifest><mainClass>io.github.wechaty.DingDongBot</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration></execution></executions></plugin></plugins></build></project>

java代码

import org.apache.commons.lang3.StringUtils;import io.github.wechaty.Wechaty;
import io.github.wechaty.filebox.FileBox;
import io.github.wechaty.schemas.MessageType;
import io.github.wechaty.user.Contact;
import io.github.wechaty.user.Room;
import io.github.wechaty.utils.QrcodeUtils;public class DingDongBot {public static void main(String[] args) throws Exception {DingDongBot.run();}public static void run() throws Exception {// final String token = System.getenv("WECHATY_PUPPET_SERVICE_TOKEN");final String token = "wechaty 控制台显示的token";if (StringUtils.isBlank(token)) {System.out.println("Error: WECHATY_PUPPET_SERVICE_TOKEN is not found in the environment variables");System.out.println("You need a TOKEN to run the Java Wechaty. Please goto our README for details");System.out.println("https://github.com/wechaty/java-wechaty-getting-started/#run");throw new Exception("need a token");}Wechaty bot = Wechaty.instance(token);bot.onScan((qrcode, statusScanStatus, data) -> {System.out.println(QrcodeUtils.getQr(qrcode));System.out.println("Online Image: https://wechaty.github.io/qrcode/" + qrcode);});bot.onMessage(message -> {Contact from = message.from();Room room = message.room();String text = message.text();MessageType type = message.type();if (type == MessageType.Image) {FileBox file = message.file();String base64 = file.getBase64();String fileName = "D:\\Docker\\image\\tmp.jpg";ImageUtil.convertBase64StrToImage(base64, fileName);System.out.println("hao");}if (StringUtils.equals(text, "你好!")) {if (room != null) {room.say("大家好才是真的好!");} else {from.say("大家好才是真的好!");}} else if (StringUtils.equals(text, "今天的心情不错嘛!")) {if (room != null) {room.say("当然,心情好,一切都没好!");} else {from.say("当然,心情好,一切都没好!");}} else if (StringUtils.equals(text, "你是微信机器人吗?")) {if (room != null) {room.say("是的,可以接受和发送文本消息和图文消息!如果结合ORC技术则可以绑定业务,减轻人类的工作量!比如我可以识别:身份证和行驶证后,帮助保司人员进行车险报价!");} else {from.say("是的,可以接受和发送文本消息和图文消息!如果结合ORC技术则可以绑定业务,减轻人类的工作量!比如我可以识别:身份证和行驶证后,帮助保司人员进行车险报价!");}} });bot.start(true);}
}

ImageUtil工具类

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;import javax.imageio.ImageIO;public class ImageUtil {/*** 图片转Base64字符串* * @param imageFileName* @return*/public static String convertImageToBase64Str(String imageFileName) {ByteArrayOutputStream baos = null;try {// 获取图片类型String suffix = imageFileName.substring(imageFileName.lastIndexOf(".") + 1);// 构建文件File imageFile = new File(imageFileName);// 通过ImageIO把文件读取成BufferedImage对象BufferedImage bufferedImage = ImageIO.read(imageFile);// 构建字节数组输出流baos = new ByteArrayOutputStream();// 写入流ImageIO.write(bufferedImage, suffix, baos);// 通过字节数组流获取字节数组byte[] bytes = baos.toByteArray();// 获取JDK8里的编码器Base64.Encoder转为base64字符return Base64.getEncoder().encodeToString(bytes);} catch (Exception e) {e.printStackTrace();} finally {try {if (baos != null) {baos.close();}} catch (IOException e) {e.printStackTrace();}}return null;}/*** Base64字符串转图片* * @param base64String* @param imageFileName*/public static void convertBase64StrToImage(String base64String, String imageFileName) {ByteArrayInputStream bais = null;try {// 获取图片类型String suffix = imageFileName.substring(imageFileName.lastIndexOf(".") + 1);// 获取JDK8里的解码器Base64.Decoder,将base64字符串转为字节数组byte[] bytes = Base64.getDecoder().decode(base64String);// 构建字节数组输入流bais = new ByteArrayInputStream(bytes);// 通过ImageIO把字节数组输入流转为BufferedImageBufferedImage bufferedImage = ImageIO.read(bais);// 构建文件File imageFile = new File(imageFileName);// 写入生成文件ImageIO.write(bufferedImage, suffix, imageFile);} catch (Exception e) {e.printStackTrace();} finally {try {if (bais != null) {bais.close();}} catch (IOException e) {e.printStackTrace();}}}}

微信机器人java-wechaty相关推荐

  1. 微信机器人框架- wechaty

    项目介绍 wechaty(https://github.com/wechaty/wechaty)是一款开源的微信SDK,它基于微信公开的API,对接口进行了一系列的封装,提供一系列简单的接口,然后开发 ...

  2. 微信机器人 java 源码_三步轻松打造微信聊天机器人(附源码)

    最近微信公众平台开发是热门,我也跟风做了一个陪聊的公众号. 其实类似的自动回话程序早就有了,比如前一阵很火的小黄鸡(还是小黄鸭来着?).但尽管是跟风,也要体现一些不同.别人做的都是中文陪聊,咱就来做个 ...

  3. 你想每天定时向你的女朋友发一句早安吗 ?教你实现一个微信机器人

    ❝ 你想每天定时向你的女朋友发一句早安吗? ❞ wechaty 是一个使用 typescript 开发的机器人,我已经使用 wechaty[1] 做了很多关于有趣的自动化的工作. 你可以通过 wech ...

  4. (上部)你要的 wechaty 微信机器人教程

    " wechaty | 微信社群管理 - 机器人" Hello,大家好.我是公众号"八点半技术站"的小编-Bruce.D. 今天是周三(2020-04-22), ...

  5. ChatGPT 微信机器人原理解析(二):Wechaty

    本文首发于我的"职场圈"知识星球: 本文是 GPT 系列文章的第 7 篇付费文章.之前的 6 篇付费文章为: 手把手带你搭建 ChatGPT 微信机器人! 把 ChatGPT 微信 ...

  6. 关于用java做微信机器人的艰辛过程

    一定要看到最后,否则后果很严重哦~ 1.技术栈 1.可爱猫框架,官网可爱猫论坛 2.Simpler-robot框架,官网微信 - 可爱猫-httpapi 3.springboot 2.可爱猫环境搭建 ...

  7. 非网页版微信机器人-Wechaty

    微信机器人有很多,比如之前的 itchat 是基于网页版实现的,然而现在微信网页版被封的厉害,许多账号都用不了了.找来找去发现 Wechaty 有基于 ipad 协议的实现,下面对其进行简单介绍. 本 ...

  8. java微信机器人_GitHub - linux-china/weixin-robot-java: 微信公共平台机器人Java SDK

    Weixin robot Java 微信公共平台自动回复机器人的Java SDK,你可以使用SDK简单快速构建微信机器人. 微信Robot Java借鉴了url rewrite的思想,url rewr ...

  9. java微信机器人_Java版微信机器人代码

    Java版微信机器人代码 (2014-07-31 09:47:58) 标签: 软件测试 java 上海泽众软件 package com.eiyoung.wechat.web.controller; i ...

最新文章

  1. shardingjdbc每月分表_shardingjdbc分库分表测试
  2. 中国三大轴承厂是 哪三家?
  3. 冬至日,诚邀你来杭州网易,一起吃着饺子畅聊「B2B增长」
  4. Deeplearnng.AI第四部分第一周、卷积神经网络
  5. 1593: 01串(找规律)
  6. 倒计时5天!云栖大会低代码峰会即将开幕!
  7. 1-1、article元素
  8. [lct] Luogu P4219 大融合
  9. python 开闭原则_Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
  10. 1 在 Linux 下开机自动重启脚本(亲测)
  11. 启动不起来_汽车没电发动不起来咋办?老司机平时都用这几种方法,简单有效...
  12. 高速公路坐标高程计算软件3.3版本发布
  13. bam文件flag的含义
  14. there.js移动端 IOS 安卓 360全景视频(vr)
  15. C#代码实现上传文件到SharePoint文档库
  16. oracle11g memory_target,oracle11g要求在操作系统层设定共享内存/dev/shm,且大于MEMORY_TARGET...
  17. 商业智能BI建设是沉淀、变革与倒逼,心动不如行动
  18. SQL:查找或删除重复行
  19. 如何设计一个PC客户端的架构
  20. 顺丰王卫回应“快递员遭投诉吞安眠药”:马上检讨 立即整改

热门文章

  1. srcnn fsrcnn espcn rdn超分网络的结构
  2. docker-compose安装及前后端项目部署
  3. 计算机软件水平考试题,计算机程序员软件水平考试试题
  4. 早早推-拼多多导购生态产品介绍优势
  5. java-net-php-python-jsp学生会人事管理信息系统计算机毕业设计程序
  6. 情感驿站 | 大学生应该明白的事情
  7. IT专业人士的最佳云安全认证
  8. android反加固,android反编译与加固
  9. 如何制作PDF,以及给PDF添加书签
  10. 应用汇总|契约锁电子签章在各行各业的实际使用场景