亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java微信公眾平臺之群發(fā)接口(高級群發(fā))

 更新時間:2018年05月07日 11:17:11   作者:Phil_Jing  
這篇文章主要為大家詳細介紹了Java微信公眾平臺之群發(fā)接口,高級群發(fā)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

再次吐槽下,微信素材管理和群發(fā)這塊文檔對Java很不友好,此文需要結(jié)合我前文官方文檔。

測試號調(diào)試群發(fā)只需看是否群發(fā)消息是否能組裝成功,不需要看結(jié)果如何(反正不會發(fā)送成功的),因為微信還沒開放這個功能(估計也不會開放的)。

一、群發(fā)說明

在公眾平臺網(wǎng)站上,為訂閱號提供了每天一條的群發(fā)權(quán)限,為服務(wù)號提供每月(自然月)4條的群發(fā)權(quán)限。

1、對于認證訂閱號,群發(fā)接口每天可成功調(diào)用1次,此次群發(fā)可選擇發(fā)送給全部用戶或某個標簽;

2、對于認證服務(wù)號雖然開發(fā)者使用高級群發(fā)接口的每日調(diào)用限制為100次,但是用戶每月只能接收4條,無論在公眾平臺網(wǎng)站上,還是使用接口群發(fā),用戶每月只能接收4條群發(fā)消息,多于4條的群發(fā)將對該用戶發(fā)送失敗;

3、開發(fā)者可以主動設(shè)置 clientmsgid 來避免重復(fù)推送。

4、群發(fā)接口每分鐘限制請求60次,超過限制的請求會被拒絕。

5、圖文消息正文中插入自己帳號和其他公眾號已群發(fā)文章鏈接的能力。

二、群發(fā)圖文消息過程

1、首先,預(yù)先將圖文消息中需要用到的圖片,使用上傳圖文消息內(nèi)圖片接口,上傳成功并獲得圖片 URL;參考前文的上傳圖文消息內(nèi)的圖片獲取URL方法
2、上傳圖文消息素材,需要用到圖片時,請使用上一步獲取的圖片 URL;
3、使用對用戶標簽的群發(fā),或?qū)?OpenID 列表的群發(fā),將圖文消息群發(fā)出去,群發(fā)時微信會進行原創(chuàng)校驗,并返回群發(fā)操作結(jié)果;
4、在上述過程中,如果需要,還可以預(yù)覽圖文消息、查詢?nèi)喊l(fā)狀態(tài),或刪除已群發(fā)的消息等。

三、群發(fā)圖片、文本等其他消息類型的過程

1、如果是群發(fā)文本消息,則直接根據(jù)下面的接口說明進行群發(fā)即可;
2、如果是群發(fā)圖片、視頻等消息,則需要預(yù)先通過素材管理接口準備好 mediaID。

四、is_to_all說明

用于設(shè)定是否向全部用戶發(fā)送,值為true或false,選擇true該消息群發(fā)給所有用戶,選擇false可根據(jù)tag_id發(fā)送給指定群組的用戶。

五、兩種群發(fā)方式

根據(jù)標簽進行群發(fā),訂閱號與服務(wù)號必須通過認證

接口:https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN

根據(jù)OpenID列表群發(fā),只適用于認證后的服務(wù)號

接口:https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN

post數(shù)據(jù)可以是圖文消息、文本、語音/音頻、圖片、視頻、卡券消息(所有使用到media_id的地方,現(xiàn)在都可以使用素材管理中的永久素材media_id了)

1、圖文消息post數(shù)據(jù)中的media_id需要通過上傳圖文消息素材接口獲取(https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=ACCESS_TOKEN)
這個跟素材管理里的新增永久圖文素材接口post數(shù)據(jù)一樣,只是接口不一樣、返回的json多了一個type和created_at,參考我前文的新增永久圖文素材方法
2、語音/音頻、圖片post數(shù)據(jù)中的media_id需要通過上傳下載多媒體文件接口獲得,參考我前文的新增臨時/永久素材方法

3、視頻post數(shù)據(jù)中的media_id最麻煩,先得通過上傳下載多媒體文件接口獲取到media_id(經(jīng)測試,永久的下一步報錯提示無效media_id),然后再通過特別接口再獲取到一個media_id,這才是群發(fā)所需要的media_id

六、群發(fā)示例Controller

@RequestMapping("/sendByOpenid") 
public MassMsgResult sendByOpenid() throws Exception { 
  // 根據(jù)OpenID列表群發(fā)圖文消息 
  String mediaPath1 = "C:/Users/phil/Pictures/image/8538572f61d7a94cf0b9fe0f290cdb28.jpg"; 
  UploadMediasResult result1 = HttpReqUtil.uploadTempMedia("phil_token", "image", mediaPath1); 
  String mediaPath2 = "C:/Users/phil/Pictures/image/685977abgw1f8xqp46dgyj20qo0zktfi.jpg"; 
  UploadMediasResult result2 = HttpReqUtil.uploadTempMedia("phil_token", "image", mediaPath2); 
  List<UploadNewsMedia> array = new ArrayList<>(); 
  UploadNewsMedia entity1 = new UploadNewsMedia(); 
  entity1.setAuthor("phil"); 
  entity1.setContent("人生只有經(jīng)歷才會懂得,只有懂得才知道珍惜,一生中,總會有一個人讓你笑得最甜,也總會有一個人讓你痛得最深,忘記,是善待自己"); 
  entity1.setContent_source_url("http://blog.csdn.net/phil_jing"); 
  // entity1.setDigest("digest"); 
  entity1.setShow_conver_pic(1); 
  entity1.setThumb_media_id(result1.getMedia_id()); 
  entity1.setTitle("心靈雞湯"); 
  array.add(entity1); 
  UploadNewsMedia entity2 = new UploadNewsMedia(); 
  entity2.setAuthor("phil"); 
  entity2.setContent("什么是幸福,幸福就是自己的一種愉快的心理狀態(tài)和感受。時時、事事都能使自己快樂的人才是最幸福的人。最快樂的人,就是最幸福的人。笑口常開的人,是最幸福的。"); 
  entity2.setContent_source_url("http://www.qq.com"); 
  // entity2.setDigest("digest"); 
  entity2.setShow_conver_pic(0); 
  entity2.setThumb_media_id(result2.getMedia_id()); 
  entity2.setTitle(" 經(jīng)典語錄"); 
  array.add(entity2); 
  UploadMediasResult ur = HttpReqUtil.uploadNewsMedia("phil_token", array); 
  List<String> openids = new ArrayList<>(); 
  openids.add("ovHQ5v9-ZsHUcax_nTCQwiP-sBcg"); 
  openids.add("ovHQ5v6CW3INkWUsCl3olODif0cc"); 
  MassMsgResult result_news = wechatMsgService.sendMpnewsToOpenid("phil_token", openids, 
  ur.getMedia_id()); 
  logger.debug(" send by openid msg {} " ,result_news.getErrmsg()); 
  // 根據(jù)OpenID列表群發(fā)文字消息 
  MassMsgResult result_text = wechatMsgService.sendTextToOpenid("phil_token", openids, 
  "什么是幸福,幸福就是自己的一種愉快的心理狀態(tài)和感受。時時、事事都能使自己快樂的人才是最幸福的人。最快樂的人,就是最幸福的人。笑口常開的人,是最幸福的"); 
  logger.debug(" send by openid msg {} " ,result_text.getErrmsg()); 
  return null; 
} 

七、部分用到的類和方法

群發(fā)方法

/** 
 * 根據(jù)標簽進行群發(fā)文本消息 
 * @param accessToken 授權(quán)token 
 * @param entity 圖文消息對象 
 * @return 
 */ 
public MassMsgResult sendTextToTag(String accessToken, int tagId, String content){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> filterParams = new HashMap<>(); 
  filterParams.put("is_to_all", false); 
  filterParams.put("tag_id", tagId); 
  Map<String, Object> textParams = new HashMap<>(); 
  textParams.put("content", content); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("filter", filterParams); 
  dataParams.put("text", textParams); 
  dataParams.put("msgtype", "text"); 
  String data = JsonUtil.toJsonString(dataParams); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_ALL_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)標簽進行群發(fā)圖文消息 
 * @param accessToken 授權(quán)token 
 * @param tagId 標簽 
 * @param mediaId uploadMedia方法獲得 
 * @return 
 */ 
public MassMsgResult sendMpnewsToTag(String accessToken, int tagId, String mediaId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> filterParams = new HashMap<>(); 
  filterParams.put("is_to_all", false); 
  filterParams.put("tag_id", tagId); 
  Map<String, Object> mpnewsParams = new HashMap<>(); 
  mpnewsParams.put("media_id", mediaId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("filter", filterParams); 
  dataParams.put("mpnews", mpnewsParams); 
  dataParams.put("msgtype", "mpnews"); 
  dataParams.put("send_ignore_reprint", 0);//不能省略 
  String data = JsonUtil.toJsonString(dataParams); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_ALL_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)標簽進行群發(fā)圖片 
 * @param accessToken 授權(quán)token 
 * @param tagId 標簽 
 * @param mediaId uploadMedia方法獲得 
 * @return 
 */ 
public MassMsgResult sendImageToTag(String accessToken, int tagId, String mediaId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> filterParams = new HashMap<>(); 
  filterParams.put("is_to_all", false); 
  filterParams.put("tag_id", tagId); 
  Map<String, Object> imageParams = new HashMap<>(); 
  imageParams.put("media_id", mediaId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("filter", filterParams); 
  dataParams.put("image", imageParams); 
  dataParams.put("msgtype", "image"); 
  String data = JsonUtil.toJsonString(dataParams); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_ALL_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)標簽進行群發(fā)語音/音頻 
 * @param accessToken 授權(quán)token 
 * @param tagId 標簽 
 * @param mediaId uploadMedia方法獲得 
 * @return 
 */ 
public MassMsgResult sendVoiceToTag(String accessToken, int tagId, String mediaId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> filterParams = new HashMap<>(); 
  filterParams.put("is_to_all", false); 
  filterParams.put("tag_id", tagId); 
  Map<String, Object> voiceParams = new HashMap<>(); 
  voiceParams.put("media_id", mediaId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("filter", filterParams); 
  dataParams.put("voice", voiceParams); 
  dataParams.put("msgtype", "voice"); 
  String data = JsonUtil.toJsonString(dataParams); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_ALL_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)標簽進行群發(fā)視頻 
 * @param accessToken 授權(quán)token 
 * @param tagId 標簽 
 * @param mediaId uploadMedia方法獲得 
 * @return 
 */ 
public MassMsgResult sendVideoToTag(String accessToken, int tagId, String mediaId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> filterParams = new HashMap<>(); 
  filterParams.put("is_to_all", false); 
  filterParams.put("tag_id", tagId); 
  Map<String, Object> mpvideoParams = new HashMap<>(); 
  mpvideoParams.put("media_id", mediaId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("filter", filterParams); 
  dataParams.put("mpvideo", mpvideoParams); 
  dataParams.put("msgtype", "mpvideo"); 
  String data = JsonUtil.toJsonString(dataParams); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_ALL_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)標簽進行群發(fā)卡券 
 * @param accessToken 授權(quán)token 
 * @param tagId 標簽 
 * @param card_id 
 * @return 
 */ 
public MassMsgResult sendWxCardToTag(String accessToken, int tagId, String cardId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> filterParams = new HashMap<>(); 
  filterParams.put("is_to_all", false); 
  filterParams.put("tag_id", tagId); 
  Map<String, Object> wxcardParams = new HashMap<>(); 
  wxcardParams.put("card_id", cardId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("filter", filterParams); 
  dataParams.put("wxcard", wxcardParams); 
  dataParams.put("msgtype", "wxcard"); 
  String data = JsonUtil.toJsonString(dataParams); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_ALL_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)OpenId進行群發(fā)圖文消息 
 * @param accessToken 授權(quán)token 
 * @param tagId 標簽 
 * @param mediaId uploadMedia方法獲得 
 * @return 
 */ 
public MassMsgResult sendMpnewsToOpenid(String accessToken, List<String> openids, String mediaId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> mpnewsParams = new HashMap<>(); 
  mpnewsParams.put("media_id", mediaId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("touser", openids); 
  dataParams.put("mpnews", mpnewsParams); 
  dataParams.put("msgtype", "mpnews"); 
  dataParams.put("send_ignore_reprint", 0); 
  String data = JsonUtil.toJsonString(dataParams); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)OpenId進行群發(fā)文本消息 
 * @param accessToken 授權(quán)token 
 * @param openids openid 
 * @param content 
 * @return 
 */ 
public MassMsgResult sendTextToOpenid(String accessToken, List<String> openids, String content){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> textParams = new HashMap<>(); 
  textParams.put("content", content); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("touser", openids); 
  dataParams.put("text", textParams); 
  dataParams.put("msgtype", "text"); 
  String data = JsonUtil.toJsonString(dataParams); 
  System.out.println(data); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)OpenId進行群發(fā)語音消息 
 * @param accessToken 授權(quán)token 
 * @param openids openid 
 * @param mediaId 
 * @return 
 */ 
public MassMsgResult sendVocieToOpenid(String accessToken, List<String> openids, String mediaId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> voiceParams = new HashMap<>(); 
  voiceParams.put("media_id", mediaId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("touser", openids); 
  dataParams.put("voice", voiceParams); 
  dataParams.put("msgtype", "voice"); 
  String data = JsonUtil.toJsonString(dataParams); 
  System.out.println(data); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
 
/** 
 * 根據(jù)OpenId進行群發(fā)圖片消息 
 * @param accessToken 授權(quán)token 
 * @param openids openid 
 * @param mediaId 
 * @return 
 */ 
public MassMsgResult sendImageToOpenid(String accessToken, List<String> openids, String mediaId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> imageParams = new HashMap<>(); 
  imageParams.put("media_id", mediaId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("touser", openids); 
  dataParams.put("image", imageParams); 
  dataParams.put("msgtype", "image"); 
  String data = JsonUtil.toJsonString(dataParams); 
  System.out.println(data); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)OpenId進行群發(fā)視頻消息 
 * @param accessToken 授權(quán)token 
 * @param openids openid 
 * @param mpVideoMedia uploadMediaVideo方法獲得media 
 * @return 
 */ 
public MassMsgResult sendVideoToOpenid(String accessToken, List<String> openids, MpVideoMedia mpVideoMedia){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("touser", openids); 
  dataParams.put("mpvideo", mpVideoMedia); 
  dataParams.put("msgtype", "mpvideo"); 
  String data = JsonUtil.toJsonString(dataParams); 
  System.out.println(data); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 
 
/** 
 * 根據(jù)OpenId進行群發(fā)卡券消息 
 * @param accessToken 授權(quán)token 
 * @param openids openid 
 * @param mediaId 
 * @return 
 */ 
public MassMsgResult sendWxcardToOpenid(String accessToken, List<String> openids, String cardId){ 
  MassMsgResult result = null; 
  TreeMap<String, String> params = new TreeMap<>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  Map<String, Object> wxcardParams = new HashMap<>(); 
  wxcardParams.put("card_id", cardId); 
  TreeMap<String,Object> dataParams = new TreeMap<>(); 
  dataParams.put("touser", openids); 
  dataParams.put("wxcard", wxcardParams); 
  dataParams.put("msgtype", "wxcard"); 
  String data = JsonUtil.toJsonString(dataParams); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.SEND_MASS_MESSAGE_URL, params, data); 
  try { 
    result = JsonUtil.fromJsonString(json, MassMsgResult.class); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return result; 
} 

視頻post數(shù)據(jù)bean

/** 
 * 視頻post數(shù)據(jù)bean 
 * @author phil 
 * @date 2017年9月20日 
 * 
 */ 
public class MpVideoMedia {  
  private String media_id;   
  private String title; 
  private String description; 
} 

獲取群發(fā)視頻post中的media_id

/** 
 * 獲取群發(fā)視頻post中的media_id 
 * 
 * @param accessToken 
 * @param uploadVideo 
 * @return 
 */ 
public static UploadMediasResult uploadMediaVideo(String accessToken, MpVideoMedia mpVideoMedia) { 
  UploadMediasResult result = null; 
  TreeMap<String, String> params = new TreeMap<String, String>(); 
  params.put("access_token", accessToken); 
  // post 提交的參數(shù) 
  String data = JsonUtil.toJsonString(mpVideoMedia); 
  String json = HttpReqUtil.HttpsDefaultExecute(SystemConfig.POST_METHOD, WechatConfig.UPLOAD_VIDEO_MEDIA_URL, 
      params, data); 
  result = JsonUtil.fromJsonString(json, UploadMediasResult.class); 
  return result; 
} 

群發(fā)返回的結(jié)果

package com.phil.wechat.msg.model.resp; 
 
import com.phil.wechat.base.result.ResultState; 
 
/** 
 * 群發(fā)消息返回的結(jié)果 
 * 根據(jù)OpenID列表群發(fā) 
 * @author phil 
 * @date 2017年7月2日 
 * 
 */  
public class MassMsgResult extends ResultState{  
   
  private String type; //媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video)和縮略圖(thumb),次數(shù)為news,即圖文消息  
  private String msg_id;  
  private String msg_data_id;  
}  

配置類

// 按分組進行群發(fā) 
public static final String SEND_ALL_MASS_MESSAGE_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall"; 
// 按照openid進行群發(fā)消息(OpenID最少2個,最多10000個 10000個) 
public static final String SEND_MASS_MESSAGE_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/send"; 
//上傳圖文消息素材 
public static final String UPLOAD_NEWS_MEDIA_URL = "https://api.weixin.qq.com/cgi-bin/media/uploadnews"; 
//獲取群發(fā)視頻post中的media_id 
public static final String UPLOAD_VIDEO_MEDIA_URL = " https://api.weixin.qq.com/cgi-bin/media/uploadvideo"; 

關(guān)于源碼,希望幫到了你

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

  • SpringBoot 在IDEA中實現(xiàn)熱部署步驟詳解(實用版)

    SpringBoot 在IDEA中實現(xiàn)熱部署步驟詳解(實用版)

    這篇文章主要介紹了SpringBoot 在IDEA中實現(xiàn)熱部署步驟詳解(實用版),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • struts2自定義攔截器的示例代碼

    struts2自定義攔截器的示例代碼

    本篇文章主要介紹了struts2自定義攔截器的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java實現(xiàn)帶圖形界面的聊天程序

    Java實現(xiàn)帶圖形界面的聊天程序

    這篇文章主要為大家詳細介紹了Java實現(xiàn)帶圖形界面的聊天程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • java實現(xiàn)往hive 的map類型字段寫數(shù)據(jù)

    java實現(xiàn)往hive 的map類型字段寫數(shù)據(jù)

    這篇文章主要介紹了java實現(xiàn)往hive 的map類型字段寫數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Mybatis在sqlite中無法讀寫byte[]類問題的解決辦法

    Mybatis在sqlite中無法讀寫byte[]類問題的解決辦法

    這篇文章主要給大家介紹了關(guān)于Mybatis在sqlite中無法讀寫byte[]類問題的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • java中extends與implements的區(qū)別淺談

    java中extends與implements的區(qū)別淺談

    java中extends與implements的區(qū)別淺談,需要的朋友可以參考一下
    2013-03-03
  • Java 遞歸重難點分析詳解與練習

    Java 遞歸重難點分析詳解與練習

    一說起遞歸,我想每個人都不陌生。舉個從小就聽過的例子:從前有座山,山里有座廟,廟里有個和尚,和尚在講故事,從前有座山,山里有座廟,廟里有個和尚,和尚在講故事,從前有座山,要理解遞歸,就得先了解什么是遞歸,實際上這句話就是一個遞歸
    2021-11-11
  • Java實現(xiàn)石頭剪刀布小游戲

    Java實現(xiàn)石頭剪刀布小游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)石頭剪刀布小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 最新評論