精华内容
下载资源
问答
  • 微信循环发送消息java
    2022-07-01 22:37:02

    试验玩玩,不要随意尝试给男/女朋友发消息!容易没朋友哈哈!!!

    简单操作:1.运行程序;2.把光标点在输入框;3.按下Ctrl+V+Enter

    一、不分行不停发送(当然可设置发送次数)。代码如下:

    package com.lyw.daily;
    
    import java.awt.*;
    import java.awt.datatransfer.Clipboard;
    import java.awt.datatransfer.StringSelection;
    import java.awt.event.KeyEvent;
    
    public class QqSendMsg01 {
        public static void main(String[] args) {
            try {
                Robot robot = new Robot();
                robot.delay(3000);
                for (int i = 0; i < 100; i++) {
                    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection("你好,帅小伙,学Java吗?"), null);
                    robot.keyPress(KeyEvent.VK_CONTROL);
                    robot.keyPress(KeyEvent.VK_V);
                    robot.keyRelease(KeyEvent.VK_CONTROL);
                    robot.keyRelease(KeyEvent.VK_V);
                    robot.keyPress(KeyEvent.VK_ENTER);
                    robot.keyRelease(KeyEvent.VK_ENTER);
                    robot.delay(100);
                }
                //无限炸,这个快
    /*            while (true) {
                    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection("你好,帅小伙"), null);
                    robot.keyPress(KeyEvent.VK_CONTROL);
                    robot.keyPress(KeyEvent.VK_V);
                    robot.keyRelease(KeyEvent.VK_CONTROL);
                    robot.keyRelease(KeyEvent.VK_V);
                    robot.keyPress(KeyEvent.VK_ENTER);
                    robot.keyRelease(KeyEvent.VK_ENTER);
                    robot.delay(100);
                }*/
            } catch (AWTException e) {
                e.printStackTrace();
            }
        }
    }
    

    二、多行发送,代码如下:

    package com.lyw.daily;
    
    import java.awt.*;
    import java.awt.datatransfer.Clipboard;
    import java.awt.datatransfer.StringSelection;
    import java.awt.event.KeyEvent;
    
    /**
     * 无限自动发送多行消息
     */
    public class QqSendMsg02 {
        public static void main(String[] args) {
            try {
                //机器类实现电脑自动
                Robot robot = new Robot();
                //Clipboard:实现使用剪切/复制/粘贴操作传输数据的机制的类。
                //getDefaultToolkit():获取默认工具包。
                //getSystemClipboard():获取与本地平台提供的剪贴板工具接口的系统剪贴板的单例实例。
                Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    
                //delay(int ms)睡在指定的时间。为了有时间让光标指向QQ\微信等
                //有六秒钟时间把光标移到QQ输入框,按下Ctrl+V+Enter
                robot.delay(6000);
    
                //编辑想发送的消息文字
                String msg = "你好,帅小伙,学Java吗";
                //split(String regex):根据给定正则表达式的匹配拆分此字符串。
                //实现文字多行发送
                String[] strings = msg.split(",");
                //发100次,当然你可以死循环炸屏...
                for (int i = 0; i < 100; i++) {
                    for (int j = 0; j < strings.length; j++) {
    
                        StringSelection word = new StringSelection(strings[j]);
                        //setContents(Transferable contents, ClipboardOwner owner)
                        // 将剪贴板的当前内容设置为指定的可转移对象,并将指定的剪贴板所有者注册为新内容的所有者。
                        systemClipboard.setContents(word, null);
    
                        //keyPress(int keycode):按一个给定的键。
                        //KeyEvent:指示组件中发生击键的事件。
                        //keyRelease(int keycode)释放给定的键
                        //按下键盘上的Ctrl
                        robot.keyPress(KeyEvent.VK_CONTROL);
                        //按下键盘上的V
                        robot.keyPress(KeyEvent.VK_V);
                        //松开键盘上的Ctrl
                        robot.keyRelease(KeyEvent.VK_CONTROL);
                        //松开键盘上的V
                        robot.keyRelease(KeyEvent.VK_V);
                        //按下Enter键
                        robot.keyPress(KeyEvent.VK_ENTER);
                        //松开Enter键
                        robot.keyRelease(KeyEvent.VK_ENTER);
                        //消息发出的时间间隔
                        robot.delay(100);
                    }
                }
            } catch (AWTException e) {
                e.printStackTrace();
            }
        }
    }
    

    更多相关内容
  • java编程实现给微信发送消息

    千次阅读 2020-05-13 16:14:30
    平时我们老是在网上看到使用python操作微信发送消息,这种功能java能不能实现呢,答案是可以的,这里我借助飞鸽快信实现一下。想了解飞鸽快信更多请访问官网。 1.访问飞鸽快信:https://u.ifeige.cn/login 使用微信...

    平时我们老是在网上看到使用python操作微信发送消息,这种功能java能不能实现呢,答案是可以的,这里我借助飞鸽快信实现一下。想了解飞鸽快信更多请访问官网。

    1.访问飞鸽快信:https://u.ifeige.cn/login
    使用微信扫码登录,并关注飞鸽快信的微信公众号:
    在这里插入图片描述
    2.添加一个群组,添加一下人员:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3.查看一下密匙:
    在这里插入图片描述
    注意:在编码中,用到最多的就是密匙SECRET KEY群组app_key

    4.看一下使用说明接口文档

    5.开始编码操作:

    添加依赖:

    	<dependency>
    		<groupId>org.apache.httpcomponents</groupId>
    			<artifactId>httpclient</artifactId>
    			<version>4.5.12</version>
    	</dependency>
    	<dependency>
    			<groupId>com.alibaba</groupId>
    			<artifactId>fastjson</artifactId>
    			<version>1.2.62</version>
    	</dependency>
    	<dependency>
    			<groupId>org.apache.commons</groupId>
    			<artifactId>commons-lang3</artifactId>
    			<version>3.9</version>
    	</dependency>
    

    代码实现:

    /**
     * @author jinghuaixin
     * @date 2020/05/13
     */
    public class FeiGeSendMessgeToWeChart {
        private static final String SECRET_KEY = "xxxxxxxxxxxxxxxxxxx"; // 使用你自己的密匙SECRET_KEY
    
        private static final String APP_KEY = "yyyyyyyyyyyyyyyyyyy"; // 使用你自己的群组APP_KEY
    
        public static void main(String[] args) throws Exception {
            // 获取用户列表
            List<User> userList = getUserList();
            // 添加用户到群组中
            for (int i = 0, len = userList.size(); i < len; i++) {
                System.out.println(addUser(userList.get(i)));
            }
            // 发送消息测试
            sendMessageTest();
            // 删除用户测试:
            for (int i = 0, len = userList.size(); i < len; i++) {
                System.out.println(deleteUser(userList.get(i)));
            }
        }
    
        /**
         * 执行请求的公共方法
         * 
         * @param url 请求url
         * @param paramMap 参数map
         * @return
         * @throws Exception
         */
        public static String doExecuteRequest(String url, Map<String, String> paramMap) throws Exception {
            String result = "";
            // 创建一个HttpClient
            HttpClient httpclient = HttpClients.createDefault();
            // 创建一个POST请求对象
            HttpPost httpPost = new HttpPost(url);
            if (paramMap != null && !paramMap.isEmpty()) {
                // 添加参数列表
                List<NameValuePair> paramList = new ArrayList<>();
                for (Map.Entry<String, String> entry : paramMap.entrySet()) {
                    paramList.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
                }
                // 将参数封装成一个实体类
                UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(paramList, "UTF-8");
                // 给POST请求添加参数
                httpPost.setEntity(urlEncodedFormEntity);
            }
    
            // 设置请求的报文头部的编码
            httpPost.setHeader(new BasicHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"));
            // 设置期望服务端返回的编码
            httpPost.setHeader(new BasicHeader("Accept", "text/plain;charset=utf-8"));
            // 执行POST请求
            HttpResponse response = httpclient.execute(httpPost);
            // 判断请求响应是否成功
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 200) {
                result = EntityUtils.toString(response.getEntity(), "UTF-8");
                System.out.println(result);
            } else {
                System.out.println("请求响应失败,响应代码:" + statusCode);
            }
            return result;
        }
    
        /**
         * 发送消息测试
         * @throws Exception
         */
        public static void sendMessageTest() throws Exception {
            // 创建一个HttpClient
            HttpClient httpclient = HttpClients.createDefault();
            // 创建一个POST请求对象
            HttpPost httpPost = new HttpPost("https://u.ifeige.cn/api/message/send");
            // 添加参数列表
            List<NameValuePair> paramList = new ArrayList<>();
            paramList.add(new BasicNameValuePair("secret", SECRET_KEY));
            paramList.add(new BasicNameValuePair("app_key", APP_KEY));
            // 模板名称:待处理通知 的模板id
            paramList.add(new BasicNameValuePair("template_id", "5uZIvSm5GAdUR1X25HNpjuOp6jSiL88v4opn4a4GLa0"));
            paramList.add(new BasicNameValuePair("data", "{" + 
                "    \"first\": {" + 
                "        \"value\": \"待处理通知\"," + 
                "        \"color\": \"#173177\"" + 
                "    }," + 
                "    \"keyword1\": {" + 
                "        \"value\": \"放假咯\"," + 
                "        \"color\": \"#173177\"" + 
                "    }," + 
                "    \"keyword2\": {" + 
                "        \"value\": \"jinghx\"," + 
                "        \"color\": \"#173177\"" + 
                "    }," + 
                "    \"keyword3\": {" + 
                "        \"value\": \""+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"\"," + 
                "        \"color\": \"#173177\"" + 
                "    }," + 
                "    \"remark\": {" + 
                "        \"value\": \"这条通知是假的\"," + 
                "        \"color\": \"#173177\"" + 
                "    }" + 
                "}"));
            paramList.add(new BasicNameValuePair("url", "https://www.baidu.com"));
    
            // 指定了uid可以只进行单条信息发送
            // paramList.add(new BasicNameValuePair("uid", "4635"));
    
            // 将参数封装成一个实体类
            UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(paramList, "UTF-8");
            // 给POST请求添加参数
            httpPost.setEntity(urlEncodedFormEntity);
            // 设置请求的报文头部的编码
            httpPost.setHeader(new BasicHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"));
            // 设置期望服务端返回的编码
            httpPost.setHeader(new BasicHeader("Accept", "text/plain;charset=utf-8"));
            // 执行POST请求
            HttpResponse response = httpclient.execute(httpPost);
            // 判断请求响应是否成功
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 200) {
                String content = EntityUtils.toString(response.getEntity(), "UTF-8");
                System.out.println(content);
            } else {
                System.out.println("请求响应失败,响应代码:" + statusCode);
            }
        }
    
        /**
         * 获取关注的用户列表
         * 
         * @param secret
         * @return
         * @throws Exception
         */
        public static List<User> getUserList() throws Exception {
            List<User> userList = null;
            String result = doExecuteRequest("https://u.ifeige.cn/api/userlist", new HashMap<String, String>() {
                private static final long serialVersionUID = 1L;
    
                {
                    put("secret", SECRET_KEY);
                }
            });
            System.out.println(result);
            if (StringUtils.isNotBlank(result)) {
                JSONObject json = JSON.parseObject(result);
                int count = Integer.parseInt(json.getString("count"));
                System.out.println("用户个数:" + count);
                if (count > 0) {
                    userList = new ArrayList<>();
                    JSONArray jsonArray = JSON.parseArray(json.getString("list"));
                    User user = null;
                    for (int i = 0; i < count; i++) {
                      /*userList = new ArrayList<>();
                    JSONArray jsonArray = JSON.parseArray(json.getString("list"));
                    User user = null;
                    for (int i = 0; i < count; i++) {
                        user = new User();
                        user.setId(jsonArray.getJSONObject(i).getString("id"));
                        user.setName(jsonArray.getJSONObject(i).getString("name"));
                        user.setRemark(jsonArray.getJSONObject(i).getString("remark"));
                        userList.add(user);
                    }*/
                    userList = JSON.parseArray(json.getString("list"), User.class);
                    }
                }
            }
            return userList;
        }
    
        /**
         * 添加用户
         * 
         * @return
         */
        public static int addUser(User u) throws Exception {
            int code = 0;
            String result = doExecuteRequest("https://u.ifeige.cn/api/group_adduser", new HashMap<String, String>() {
                private static final long serialVersionUID = 1L;
    
                {
                    put("secret", SECRET_KEY);
                    put("token", APP_KEY);
                    put("uid", u.getId());
                }
            });
            if (StringUtils.isNotBlank(result)) {
                code = Integer.parseInt(JSON.parseObject(result).getString("code"));
            }
            return code;
        }
    
        /**
         * 删除用户测试
         * 
         * @param u
         * @return
         * @throws Exception
         */
        public static int deleteUser(User u) throws Exception {
            int code = 0;
            String result = doExecuteRequest("https://u.ifeige.cn/api/group_deleteuser", new HashMap<String, String>() {
                private static final long serialVersionUID = 1L;
    
                {
                    put("secret", SECRET_KEY);
                    put("token", APP_KEY);
                    put("uid", u.getId());
                }
            });
            if (StringUtils.isNotBlank(result)) {
                code = Integer.parseInt(JSON.parseObject(result).getString("code"));
            }
            return code;
        }
    }
    /**
     * 用户信息
     * @author jinghuaixin
     * @date 2020/05/13
     */
    class User {
        private String id;
    
        private String name;
    
        private String remark;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getRemark() {
            return remark;
        }
    
        public void setRemark(String remark) {
            this.remark = remark;
        }
    
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + name + ", remark=" + remark + "]";
        }
    
    }
    

    其实编码比较简单,按照接口说明里面的url请求和传递参数就可以了,下面贴一张接口的说明:
    在这里插入图片描述
    在这里插入图片描述
    在群里列表点击发消息,会跳转到模板页面,模板ID就是template_id参数的值,点击使用说明或者测试,可以看到具体的参数格式:
    在这里插入图片描述
    这样,运行程序,你就可以接收到微信消息了:
    在这里插入图片描述
    在管理中心里面,你可以看到自己的二维码,当别人扫描二维码以后,你可以把他添加到指定群组下,这样他也能接收到你的消息了,当然了你可以写一个定时任务,定时扫描人员列表然后添加到指定群组下面,这样就省事多了,是不是很简单呢。

    展开全文
  • 微信公众平台 (2019/12/9:有点对不起,完全没写清楚就拿出来了祸害大家,抱歉!!现在说被遗忘的正事:以上信息填写完,服务器搞好大概就是可以通过服务器调用wechat,就可以点击提交了,url是http://ip地址/...

    微信公众平台

    (2019/12/9:有点对不起,完全没写清楚就拿出来了祸害大家,抱歉!!现在说被遗忘的正事:以上信息填写完,服务器搞好大概就是可以通过服务器调用wechat,就可以点击提交了,url是http://ip地址/controller/wechat,Token就随便就好)

    @RequestMapping(value = "/wechat",method = RequestMethod.GET,produces = {"application/xml; charset=UTF-8"})
    	public void tokenVarify( HttpServletRequest request, HttpServletResponse response) {
    		boolean isGet = request.getMethod().toLowerCase().equals("get");
    		PrintWriter print;
    		if (isGet) {
    			// 微信加密签名
    			String signature = request.getParameter("signature");
    			// 时间戳
    			String timestamp = request.getParameter("timestamp");
    			// 随机数
    			String nonce = request.getParameter("nonce");
    			// 随机字符串
    			String echostr = request.getParameter("echostr");
    			// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
    			if (signature != null && CheckUtil.checkSignature(signature, timestamp, nonce)) {
    				try {
    					print = response.getWriter();
    					print.write(echostr);
    					print.flush();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    	}

    发送消息

    @RequestMapping(value = "wechat",method = RequestMethod.POST,produces = {"application/xml; charset=UTF-8"})
    	public void toMsg(HttpServletRequest request, HttpServletResponse response, String tkl) throws IOException {
    		LogUtil.sendMsg("微信返回了--------Weichart_Return");
    		String resXml="";
    		InputStream inputStream ;
    		StringBuffer sb = new StringBuffer();
    		inputStream = request.getInputStream();
    		String reqXmlStr;
    		BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
    		while ((reqXmlStr = in.readLine()) != null){
    			sb.append(reqXmlStr);
    		}
    		in.close();
    		inputStream.close();
    		LogUtil.sendMsg(sb.toString());
    		try {
    			Map map = XMLUtil.doXMLParse(sb.toString());
    			String toUserName = map.get("ToUserName").toString();//开发者微信号
    			String fromUserName = map.get("FromUserName").toString();//发送方帐号(一个OpenID)
    			String createTime = map.get("CreateTime").toString();//消息创建时间 (整型)
    			String msgType = map.get("MsgType").toString();//消息类型
                String content = "该商品暂时没找到优惠通道!";
    				
    
    				String resXmlStr="<xml><ToUserName><![CDATA["+fromUserName+"]]></ToUserName>" +//此处要填写 发送方帐号(一个OpenID)
    						"<FromUserName><![CDATA["+toUserName+"]]></FromUserName>" +//此处填写开发者微信号
    						"<CreateTime>"+createTime+"</CreateTime>" +
    						"<MsgType><![CDATA["+msgType+"]]></MsgType>"+
    						"<Content><![CDATA["+content+"]]></Content></xml>";
    				LogUtil.sendMsg(resXmlStr);
    				response.getWriter().print(resXmlStr);
    			}
    		} catch (Exception e) {
    			LogUtil.error(e);
    		}
    	}

    展开全文
  • Java实现自动给微信好友群组发送消息 引入依赖 <dependencies> <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>5.5.0...

    Java实现自动给微信好友群组发送消息

    1. 引入依赖
     <dependencies>
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
                <version>5.5.0</version>
            </dependency>
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna-platform</artifactId>
                <version>5.5.0</version>
            </dependency>
        </dependencies>
    
    1. 代码
    package com.xf;
    
    import com.sun.jna.platform.win32.User32;
    import com.sun.jna.platform.win32.WinDef;
    
    import java.awt.*;
    import java.awt.datatransfer.*;
    import java.awt.event.KeyEvent;
    import java.util.concurrent.TimeUnit;
    
    /**
     * @author xf
     * @date
     */
    public class RobotUtil {
    
        private static Robot robot;
        private static Clipboard clip;
        private static Toolkit kit;
    
        public static void main(String[] args) throws AWTException, InterruptedException {
            // 微信窗口置顶成功
            if (topWeChat()) {
                // 初始化
                init();
                // 指定需要发送消息的联系人/群组
                queryItemForSendMessage("盖于谷山上"); // 微信昵称/群名
                // 发送字符串消息
                 for (int i = 0; i < 300; i++) { // 循环发姐姐
                     // 送
                     TimeUnit.SECONDS.sleep(5);
                   sendStrMessage("姐姐");
                 }
                // 发送图片消息
                //sendImgMessage("exceltest.jpg"); // 表情包的路径
            }
    
        }
    
        /**
         * 置顶微信窗口
         *
         * @return
         */
        public static boolean topWeChat() {
            boolean flag = true;
            WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null, "微信");
            if (hwnd == null) {
                flag = false;
                System.out.println("not running");
            } else {
                User32.INSTANCE.ShowWindow(hwnd, 9);
                User32.INSTANCE.SetForegroundWindow(hwnd); // bring to front
            }
            return flag;
        }
    
        /**
         * 初始化全局变量
         *
         */
        private static void init() {
            try {
                robot = new Robot();
            } catch (AWTException e) {
                robot = null;
                e.printStackTrace();
            }
            kit = Toolkit.getDefaultToolkit();
            clip = kit.getSystemClipboard();
        }
    
        /**
         * 查找需要发送消息的人员/群组
         *
         * @param userName
         */
        public static void queryItemForSendMessage(String itemName) {
            if (robot == null) {
                return;
            }
            robot.delay(2000); // 给窗口置顶预留时间
            // 模拟在微信上进行Ctrl+F进行查询操作
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_F);
            robot.keyRelease(KeyEvent.VK_CONTROL); // 是否Ctrl键
            // 将字符串放到剪切板内,相当于做了一次复制操作
            Transferable tText = new StringSelection(itemName);
            clip.setContents(tText, null);
            // 以下两行按下了ctrl+v,完成粘贴功能
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
    
            robot.keyRelease(KeyEvent.VK_CONTROL);// 释放ctrl按键,像ctrl,退格键,删除键这样的功能性按键,在按下后一定要释放,不然会出问题。crtl如果按住没有释放,在按其他字母按键是,敲出来的回事ctrl的快捷键。
            robot.keyPress(KeyEvent.VK_ENTER); // 按下enter键进行查询
            robot.delay(2000); // 预留查询时间
            robot.keyPress(KeyEvent.VK_ENTER); // 再次按下enter键进行选中
            robot.delay(1000);
        }
    
        /**
         * 发送字符串消息
         *
         * @param message
         */
        public static void sendStrMessage(String message) {
            if (robot == null) {
                return;
            }
            // 将字符串放到剪切板内,相当于做了一次复制操作
            Transferable tText = new StringSelection(message);
            clip.setContents(tText, null);
            // 以下两行按下了ctrl+v,完成粘贴功能
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
    
            robot.keyRelease(KeyEvent.VK_CONTROL);// 释放ctrl按键,像ctrl,退格键,删除键这样的功能性按键,在按下后一定要释放,不然会出问题。crtl如果按住没有释放,在按其他字母按键是,敲出来的回事ctrl的快捷键。
            robot.keyPress(KeyEvent.VK_ENTER); // 按下enter键进行消息发送
            robot.delay(1000);
        }
    
        /**
         * 发送字符串消息
         *
         * @param message
         */
        public static void sendImgMessage(String imgPath) {
            if (robot == null) {
                return;
            }
            // 将字符串放到剪切板内,相当于做了一次复制操作
            Transferable tImg = new ImageSelection(kit.getImage(imgPath));
            clip.setContents(tImg, null);
            // 以下两行按下了ctrl+v,完成粘贴功能
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
    
            robot.keyRelease(KeyEvent.VK_CONTROL);// 释放ctrl按键,像ctrl,退格键,删除键这样的功能性按键,在按下后一定要释放,不然会出问题。crtl如果按住没有释放,在按其他字母按键是,敲出来的回事ctrl的快捷键。
            robot.keyPress(KeyEvent.VK_ENTER); // 按下enter键进行消息发送
            robot.delay(1000);
        }
    
    }
    /**
     * 自定义Transferable实现类实现图片复制到剪切板
     *
     * @date 2020/05/14
     */
    class ImageSelection implements Transferable {
        private Image image;
    
        public ImageSelection(Image image) {
            this.image = image;
        }
    
        // Returns supported flavors
        public DataFlavor[] getTransferDataFlavors() {
            return new DataFlavor[] {DataFlavor.imageFlavor};
        }
    
        // Returns true if flavor is supported
        public boolean isDataFlavorSupported(DataFlavor flavor) {
            return DataFlavor.imageFlavor.equals(flavor);
        }
    
        // Returns image
        public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
            if (!DataFlavor.imageFlavor.equals(flavor)) {
                throw new UnsupportedFlavorException(flavor);
            }
            return image;
        }
    }
    
    展开全文
  • 如何实现微信自动发送消息

    千次阅读 2021-03-15 21:13:41
    《锤锤微信定时后台发送消息V1.0》使用教程:首先登陆电脑版微信,打开锤锤微信定时后台发送消息的工具微商必备软件利器然后分别获取我们需要发送是文字消息,图片消息(还可以是音乐文件,程序,文档,动图,视频等)...
  • 博客地址: http://gmfsf.fun
  • JAVA模拟登陆获取用户列表和循环群发消息功能,研究了3天,综合了网上很多人的代码,终于完成了,网上代码因为8月份微信改动导致基本都不可以用了,目前我这套是可以用的,但是模拟登陆群发消息有风险,突破了群服务...
  • java微信公众号---发送模板和图文消息

    千次阅读 热门讨论 2021-01-05 14:04:00
    微信公众号对接开发项目搭建mavenapplication.ymlyml参数配置微信客户端配置搭建完成 实现业务模板消息推送准备工作模板消息填写要求图文消息填写要求推送模板消息推送模板消息结果——效果推送图文消息问题和结果...
  • java微信客服消息接口

    2019-11-26 19:14:04
    转载:java微信客服消息接口 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协...
  • 发送模板消息,OKhttp3.* 基础接口封装
  • java实现自动发送微信QQ消息(可发图片)

    万次阅读 热门讨论 2019-12-31 13:57:11
    自动发送微信/QQ/微博等消息 一:功能:实现发送QQ/微信/微博消息,程序控制。 效果演示(实现自动发生QQ微信消息给女友,发微博信息也可以就不演示了) 二:原理讲解:将剪贴板的内容给发送到QQ微信中去,...
  • 微信轰炸恶搞小伙伴
  • 现在在发送模版消息、客服消息时受到限制。不知道有什么更好的解决方案。我们目前比较屎的方案:1、建立发送任务,发送模版消息或客服消息。2、两张队列表,一个模版消息队列表,一个客服消息队列表。当发送任务提交...
  • 这个其实不光微信,QQ也是可以的,想一下平时如果想刷屏群聊,聊天不爽了想骂回去,惹女朋友生气了想不停的道歉,或者每天定时问候一下,这些如果都要自己手动操作也太麻烦了吧,还不如写一个程序解决了呢。...
  • 多线程发送微信模版消息

    千次阅读 2020-06-04 10:56:33
    最近项目中用到微信推送模板消息给用户,刚开始没有做优化,全部发完大概6分钟左右,加上多线程之后大概1分钟左右就能完成 runnable类 import com.alibaba.fastjson.JSONObject; import lombok.Data; import ...
  • 微信小程序推送客服消息 1. 微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/customer-message/customerServiceMessage.send.html **2.**本文介绍的是推送图文消息 /** * ...
  • 微信推送功能精髓之所在 /** *微信模板推送 * @param req 微信用户唯一标识 * @param response 处理给浏览器返回的数据 * @return 返回状态 */ @GetMapping("/tuisong") public String SendWxNotice...
  • 基于这个思路, 在 MQ 中存储消息的状态才是真理,消息生产者先把消息发送给MQ,此时消息状态为“待确认”,接着生产者去执行本地事务,如果执行成功就给MQ发送消息让他更改消息状态为 “待发送”并发送消息,如果...
  • Java实现微信发红包

    2021-03-22 16:37:24
    之前的所有内容中,综合java这方面的知识,可以模拟发普通红包。那么这篇博客,我将整合之前介绍的所有的技术和知识,编写一个带界面版的 发红包 案例。需求分析分析并使用已给出的类,编写程序,设置红包类型。小...
  • java实现微信公众号模板消息推送

    千次阅读 热门讨论 2019-02-28 13:21:59
    要推送微信的模板消息,我们需要准备的条件有: 1、有效的access_token 2、微信公众号提供的消息模板的Template_id access_token: 公众平台以access_token为接口调用凭据,来调用接口,所有接口的调用需要先获取...
  • 微信公众号JAVA后台对接最全面 微信公众号JAVA后台对接步骤 1.环境搭建 (1)接口测试号申请 拿到appid和appsecret,配置在后台配置文件! ...
  • java 微信支付(v2)

    2021-11-18 10:55:25
    java 微信支付(V2)
  • 模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如涉及金钱交易-刷卡支付,商品购买等,不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。模版消息可以不通过用户...
  • 使用场景说明:一个接单工具,需要实时的发送消息给到业务人员,本来是打算使用邮箱的,奈何邮箱的发送速度太慢,接口每十秒调用一次,但是邮箱发个邮件要18秒,效率太低,刚好公司有企业微信,就用企业微信做推送,...
  • [Java] 纯文本查看 复制代码package QQWchat;import java.awt.AWTException;import java.awt.Robot;import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.StringSelection...
  • java获取微信二维码进行下载或返回给前端显示
  • java发送企业邮箱

    2021-03-22 13:51:25
    此代码用的jar文件:mail.jar(我这里用的是1.4.7 的版本);如果jdk用的是1.8版本会出现SSL错误:这个问题是jdk导致的,jdk1.8...这两个jar包的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jc...
  • 上一篇写好了用于发送邮件的类,本篇把余下的设定定时任务、从excel读取发件人账号、从mysql读取收件人邮箱以及随机标题和内容来实现。先看整个应用的文件框架结构,如下图: 上图中log4j.properties文件没有...
  • 「小程序·云开发」不仅支持通过云调用免 access_token 发送订阅消息,而且支持在 定时触发器 中实现云调用,因此我们可以使用这个切入口来实现我们得定时触发需求~ 前置工作 先写好授权订阅操作相关代码(有关授权...
  • 你好222222 appid=******** //小程序appid ...```java ```r ```java ```c ```bash ```bash ```bash ```bash ```bash ```bash ```bash ```bash ```cpp ```xml <dependency> <groupId&

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,797
精华内容 4,718
关键字:

微信循环发送消息java