🆕 #2356 【公众号】新增草稿箱和发布相关的接口

This commit is contained in:
dragon
2021-10-23 23:23:18 +08:00
committed by GitHub
parent 8c787d1638
commit 5755c293df
20 changed files with 1330 additions and 3 deletions

View File

@@ -0,0 +1,44 @@
package me.chanjar.weixin.mp.bean.draft;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import me.chanjar.weixin.common.bean.ToJson;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* 草稿箱能力-新建草稿.
*
* @author dragon
* @date 2021-10-22
*/
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class WxMpAddDraft implements ToJson, Serializable {
private static final long serialVersionUID = 2481699972367293721L;
/**
* 图文素材列表
*/
@SerializedName("articles")
private List<WxMpDraftArticles> articles;
public static WxMpAddDraft fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpAddDraft.class);
}
@Override
public String toJson() {
return WxGsonBuilder.create().toJson(this);
}
}

View File

@@ -0,0 +1,81 @@
package me.chanjar.weixin.mp.bean.draft;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import me.chanjar.weixin.common.bean.ToJson;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
/**
* 草稿箱能力-图文素材文章实体.
*
* @author dragon
* @date 2021-10-22
*/
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class WxMpDraftArticles implements ToJson, Serializable {
/**
* 标题
*/
@SerializedName("title")
private String title;
/**
* 作者
*/
@SerializedName("author")
private String author;
/**
* 图文消息的摘要仅有单图文消息才有摘要多图文此处为空。如果本字段为没有填写则默认抓取正文前54个字。
*/
@SerializedName("digest")
private String digest;
/**
* 图文消息的具体内容支持HTML标签必须少于2万字符小于1M且此处会去除JS,涉及图片url必须来源 "上传图文消息内的图片获取URL"接口获取。外部图片url将被过滤。
*/
@SerializedName("content")
private String content;
/**
* 图文消息的原文地址即点击“阅读原文”后的URL
*/
@SerializedName("content_source_url")
private String contentSourceUrl;
/**
* 图文消息的封面图片素材id必须是永久MediaID
*/
@SerializedName("thumb_media_id")
private String thumbMediaId;
/**
* 是否显示封面0为false即不显示1为true即显示(默认)
*/
@SerializedName("show_cover_pic")
private Integer showCoverPic;
/**
* 是否打开评论0不打开(默认)1打开
*/
@SerializedName("need_open_comment")
private Integer needOpenComment;
/**
* 是否粉丝才可评论0所有人可评论(默认)1粉丝才可评论
*/
@SerializedName("only_fans_can_comment")
private Integer onlyFansCanComment;
public static WxMpDraftArticles fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpDraftArticles.class);
}
@Override
public String toJson() {
return WxGsonBuilder.create().toJson(this);
}
}

View File

@@ -0,0 +1,44 @@
package me.chanjar.weixin.mp.bean.draft;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import me.chanjar.weixin.common.bean.ToJson;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* 草稿箱能力-获取草稿详情.
*
* @author dragon
* @date 2021-10-22
*/
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class WxMpDraftInfo implements ToJson, Serializable {
private static final long serialVersionUID = 6111694033486314392L;
/**
* 文章列表
*/
@SerializedName("news_item")
private List<WxMpDraftArticles> newsItem;
public static WxMpDraftInfo fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpDraftInfo.class);
}
@Override
public String toJson() {
return WxGsonBuilder.create().toJson(this);
}
}

View File

@@ -0,0 +1,33 @@
package me.chanjar.weixin.mp.bean.draft;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
/**
* 一条草稿
*
* @author dragon
* @date 2021-10-22
*/
@Data
public class WxMpDraftItem implements Serializable {
private static final long serialVersionUID = 214696458030935146L;
/**
* 图文消息的id
*/
@SerializedName("media_id")
private String mediaId;
/**
* 图文消息的具体内容支持HTML标签必须少于2万字符小于1M且此处会去除JS。
*/
@SerializedName("content")
private WxMpDraftInfo content;
public static WxMpDraftItem fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpDraftItem.class);
}
}

View File

@@ -0,0 +1,41 @@
package me.chanjar.weixin.mp.bean.draft;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* 草稿箱能力-获取草稿列表.
*
* @author dragon
* @date 2021-10-22
*/
@Data
public class WxMpDraftList implements Serializable {
private static final long serialVersionUID = 7216822694952035295L;
/**
* 草稿素材的总数
*/
@SerializedName("total_count")
private Integer totalCount;
/**
* 本次调用获取的素材的数量
*/
@SerializedName("item_count")
private Integer itemCount;
/**
* 所有草稿列表
*/
@SerializedName("item")
private List<WxMpDraftItem> items;
public static WxMpDraftList fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpDraftList.class);
}
}

View File

@@ -0,0 +1,55 @@
package me.chanjar.weixin.mp.bean.draft;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import me.chanjar.weixin.common.bean.ToJson;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
/**
* 草稿箱能力-修改草稿.
*
* @author dragon
* @date 2021-10-22
*/
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class WxMpUpdateDraft implements ToJson, Serializable {
private static final long serialVersionUID = -8564521168423899915L;
/**
* 要修改的图文消息的id
*/
@SerializedName("media_id")
private String mediaId;
/**
* 要更新的文章在图文消息中的位置多图文消息时此字段才有意义第一篇为0
*/
@SerializedName("index")
private Integer index;
/**
* 图文素材列表
*/
@SerializedName("articles")
private WxMpDraftArticles articles;
public static WxMpUpdateDraft fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpUpdateDraft.class);
}
@Override
public String toJson() {
return WxGsonBuilder.create().toJson(this);
}
}

View File

@@ -0,0 +1,85 @@
package me.chanjar.weixin.mp.bean.freepublish;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
/**
* 一条发布的图文记录
*
* @author dragon
* @date 2021-10-23
*/
@NoArgsConstructor
@Data
public class WxMpFreePublishArticles implements Serializable {
private static final long serialVersionUID = -6435229818150835883L;
/**
* 标题
*/
@SerializedName("title")
private String title;
/**
* 作者
*/
@SerializedName("author")
private String author;
/**
* 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空。
*/
@SerializedName("digest")
private String digest;
/**
* 图文消息的具体内容支持HTML标签必须少于2万字符小于1M且此处会去除JS
*/
@SerializedName("content")
private String content;
/**
* 图文消息的原文地址即点击“阅读原文”后的URL
*/
@SerializedName("content_source_url")
private String contentSourceUrl;
/**
* 图文消息的封面图片素材id一定是永久MediaID
*/
@SerializedName("thumb_media_id")
private String thumbMediaId;
/**
* 是否显示封面0为false即不显示1为true即显示(默认)
*/
@SerializedName("show_cover_pic")
private Integer showCoverPic;
/**
* 是否打开评论0不打开(默认)1打开
*/
@SerializedName("need_open_comment")
private Integer needOpenComment;
/**
* 是否粉丝才可评论0所有人可评论(默认)1粉丝才可评论
*/
@SerializedName("only_fans_can_comment")
private Integer onlyFansCanComment;
/*
* ===== 上面的参数,就是草稿箱的内容的字段,为了后续扩展,单独写一份====
*/
/**
* 草稿的临时链接
*/
@SerializedName("url")
private String url;
/**
* 该图文是否被删除
*/
@SerializedName("is_deleted")
private Boolean isDeleted;
public static WxMpFreePublishArticles fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpFreePublishArticles.class);
}
}

View File

@@ -0,0 +1,44 @@
package me.chanjar.weixin.mp.bean.freepublish;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import me.chanjar.weixin.common.bean.ToJson;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* 发布能力-通过 article_id 获取已发布文章.
*
* @author dragon
* @date 2021-10-23
*/
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class WxMpFreePublishInfo implements ToJson, Serializable {
private static final long serialVersionUID = 3331288672996730705L;
/**
* 文章列表
*/
@SerializedName("news_item")
private List<WxMpFreePublishArticles> newsItem;
public static WxMpFreePublishInfo fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpFreePublishInfo.class);
}
@Override
public String toJson() {
return WxGsonBuilder.create().toJson(this);
}
}

View File

@@ -0,0 +1,35 @@
package me.chanjar.weixin.mp.bean.freepublish;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
/**
* 发布列表的一条记录
*
* @author dragon
* @date 2021-10-23
*/
@NoArgsConstructor
@Data
public class WxMpFreePublishItem implements Serializable {
private static final long serialVersionUID = -6435229818150835883L;
/**
* 成功发布的图文消息id
*/
@SerializedName("article_id")
private String articleId;
/**
* 图文消息的具体内容支持HTML标签必须少于2万字符小于1M且此处会去除JS。
*/
@SerializedName("content")
private WxMpFreePublishInfo content;
public static WxMpFreePublishItem fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpFreePublishItem.class);
}
}

View File

@@ -0,0 +1,41 @@
package me.chanjar.weixin.mp.bean.freepublish;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* 发布能力-获取成功发布列表.
*
* @author dragon
* @date 2021-10-22
*/
@Data
public class WxMpFreePublishList implements Serializable {
private static final long serialVersionUID = 764054773431665250L;
/**
* 成功发布素材的总数
*/
@SerializedName("total_count")
private Integer totalCount;
/**
* 本次调用获取的素材的数量
*/
@SerializedName("item_count")
private Integer itemCount;
/**
* 所有成功发布列表
*/
@SerializedName("item")
private List<WxMpFreePublishItem> items;
public static WxMpFreePublishList fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpFreePublishList.class);
}
}

View File

@@ -0,0 +1,56 @@
package me.chanjar.weixin.mp.bean.freepublish;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import me.chanjar.weixin.common.bean.ToJson;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* 发布能力-发布状态轮询接口通过publishId返回 article_id(删除发布时需要用到).
*
* @author dragon
* @date 2021-10-23
*/
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class WxMpFreePublishStatus implements ToJson, Serializable {
private static final long serialVersionUID = -7526369389476785732L;
private String publish_id;
private Integer publish_status;
private String article_id;
private ArticleDetail article_detail;
private List<Integer> fail_idx;
public static WxMpFreePublishStatus fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, WxMpFreePublishStatus.class);
}
@Override
public String toJson() {
return WxGsonBuilder.create().toJson(this);
}
@NoArgsConstructor
@Data
public static class ArticleDetail {
private Integer count;
private List<Item> item;
@NoArgsConstructor
@Data
public static class Item {
private Integer idx;
private String article_url;
}
}
}