预览接口【订阅号与服务号认证后均可用】
开发者可通过该接口发送消息给指定用户,在手机端查看消息的样式和排版。
为了满足第三方平台开发者的需求,在保留对openID预览能力的同时,
增加了对指定微信号发送预览的能力,但该能力每日调用次数有限制(100次)
,请勿滥用。
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;
import org.springframework.stereotype.Service;
import com.google.gson.Gson;
import net.sf.json.JSONObject;
@Service
public class WX_SendMsg{
public static void main(String[] args) {
messTextMessage("群发");
}
/**
* 群发文本消息
* @param openId
* @param text
* @return
*/
public static boolean messTextMessage(String text) {
try {
String resp = "";//响应
String openId="oLD9puE-fxhKmn6wYA_au4uVSDHXN";
String accessToken="";
String reqUrl = "https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token="+accessToken;
try {
// 构造httprequest设置
HttpClient client = new HttpClient();
PostMethod request = new PostMethod(reqUrl);
// 添加request headers
request.addRequestHeader("Content-type", "application/json");
request.addRequestHeader("Accept", "application/json");
Map<String, Object> param = new HashMap<String, Object>();
param.put("touser", openId);
param.put("msgtype", "text");
Map<String, Object> content = new HashMap<String, Object>();
content.put("content", text);
param.put("text",content);
String json = new Gson().toJson(param);
request.setRequestEntity(new ByteArrayRequestEntity(json.getBytes("UTF-8")));
client.executeMethod(request);
resp = request.getResponseBodyAsString();
JSONObject jsonObject = JSONObject.fromObject(resp);
WX_ReturnMsg wX_ReturnMsg=(WX_ReturnMsg)JSONObject.toBean(jsonObject, WX_ReturnMsg.class);
System.out.println("wX_ReturnMsg=="+wX_ReturnMsg.toString());
} catch (Exception e) {
System.out.println("发送POST请求出现异常!" + e);
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
public class WX_ReturnMsg {
private String errcode;
private String errmsg;
private String msg_id;
public String getErrcode() {
return errcode;
}
public void setErrcode(String errcode) {
this.errcode = errcode;
}
public String getErrmsg() {
return errmsg;
}
public void setErrmsg(String errmsg) {
this.errmsg = errmsg;
}
public String getMsg_id() {
return msg_id;
}
public void setMsg_id(String msg_id) {
this.msg_id = msg_id;
}
public String toString() {
return "errcode:"+errcode+";errmsg="+errmsg+";msg_id:"+msg_id;
}
}