java微信群发图文消息 java总结_图文
PAGE
PAGE 22
java微信群发图文消息 java总结_图文
java总结
java微信群发图文消息 java总结_图文
在做微信高级接口开发中,或许总会碰到很多神奇的错误码,而这些错误码在官方文档中还是找不到原因,因此贴出自己开发过程中用的一些demo,希望能够给一些小伙伴指点迷津。{ errcode :45028, errmsg : has no masssend quota hint: [c3ZjkA0323age9] }如遇到这个错误码,官方文档是没有查询的,这个是因为测试号没有大型数据群发配额导致,解决办法申请一个认证的订阅号或者公众号,或者测试号模式下通过openid来测试群发,最后在公众号上更换成正确的post地址,就可以实现了,只是测试号无法用分组的那个post接口而已。
群发的步骤:
第一步,获取access_token,这部分就不写代码了,可以参照柳峰的博客专栏
/lyq8479/article/details获取到的ACCESS_TOKEN
第二部,发送消息
首先是准备post接口地址:
String groupUrl = /cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN //这个地址是根据分组id来群发消息
String groupUrl1 = /cgi-bin/message/mass/send?access_token=ACCESS_TOKEN //这个地址是根据openid来群发消息由于接口调用有次数限制,测试号是200次一天,请珍惜。
再是准备post数据:
①文本消息
String group1data = {\ filter\ :{\ is_to_all\ :false,\ group_id\ :\ 2\ },\ text\ :{\ content\ :\ 群发消息测试\ },\ msgtype\ :\ text\ }\ //这个是通过分组id发送的普通文本消息
String openid1data = {\ touser\ :[\ span >//这个是通过openid发送的普通文本消息消息 式严 如上,可以参照官方文档,可以用JSONObject.from(Objec
obj)这个来进行对象转json字符串,具体可以百度,红色字是关注当前微信公众号用户的openid
至于如何获取用户openid这里就不赘述,参照官方文档,或者参照博主其他文章。
②图片消息
图片消息数据准备又要分两步,关键在于获取图片或者说获取media_id
博主采用模拟表单上传方式来先上传一个临时素材文件并获取其id,代码如下:
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import .HttpURLConnection;
import .URL;
public class FileUpload {
* 模拟form表单的形式 ,上传文件 以输出流的形式把文件写入到url中,然后用输入流来获取url的响应
* @param url
* 请求地址 form表单url地址
* @param filePath
* 文件在服务器保存路径
* @return String url的响应信息返回值
* @throws IOException
public String send(String url, String filePath) throws IOException {
String result = null;
File file = new File(filePath);
if (!file.exists() || !file.isFile()) {
throw new IOException( 文件不存在
* 第一部分
URL urlObj = new URL(url);
// 连接
HttpURLConnection con = (HttpURLConnection) urlObj.openConnection();
* 设置关键值
con.setRequestMethod( POST // 以Post方式提交表单,默认g