1
0
mirror of synced 2026-02-19 12:17:55 +08:00

🎨 #3571【公众号】草稿箱相关接口支持图片文章类型

This commit is contained in:
阿杆
2025-05-28 15:59:08 +08:00
committed by GitHub
parent f71ac2185c
commit 08e2107667
6 changed files with 291 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
package me.chanjar.weixin.mp.api.impl;
import com.google.inject.Inject;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.test.ApiTestModule;
@@ -23,15 +24,15 @@ import static org.assertj.core.api.Assertions.assertThat;
public class WxMpDraftServiceImplTest {
/**
* 1.先上传一个永久图片素材me.chanjar.weixin.mp.api.impl.WxMpMaterialServiceImplTest.testUploadMaterial
* 1.先上传一个永久图片素材:{@link me.chanjar.weixin.mp.api.impl.WxMpMaterialServiceImplTest#testUploadMaterial}
* 2.后续图文需要设置一个永久素材id
*/
final String thumbMediaId = "zUUtT8ZYeXzZ4slFbtnAkh7Yd-f45DbFoF9ERzVC6s4";
final String thumbMediaId = "-V3dxNv-eyJlImuJjWrmaTPt76BS6jHrL6-cGBlFPaXxAuv0qeJYV2p6Ezirr0zS";
/**
* 新增草稿后返回的id后续查询、修改、删除获取等需要使用
*/
final String mediaId = "zUUtT8ZYeXzZ4slFbtnAkpgGKyqnTsjtUvMdVBRWJVk";
final String mediaId = "-V3dxNv-eyJlImuJjWrmaZLwMkTKfDEhzq5NURU02H-k1qHMJ0lh9p0UU46w3rbd";
@Inject
protected WxMpService wxService;
@@ -114,6 +115,7 @@ public class WxMpDraftServiceImplTest {
,"total_count":1,"item_count":1}
*/
System.out.println(draftList);
assertThat(draftList).isNotNull();
}
@@ -124,5 +126,101 @@ public class WxMpDraftServiceImplTest {
assertThat(countDraft).isNotNull();
}
//-----以下是图片类型草稿测试
/**
* 先上传一个永久图片素材:{@link me.chanjar.weixin.mp.api.impl.WxMpMaterialServiceImplTest#testUploadMaterial}
* 这里的图片,使用的是 mm.jpeg
*/
@Test
public void testAddDraftPic() throws WxErrorException {
List<WxMpDraftArticles> draftArticleList = new ArrayList<>();
ArrayList<WxMpDraftImageInfo.ImageItem> imageItems = new ArrayList<>();
imageItems.add(new WxMpDraftImageInfo.ImageItem(thumbMediaId));
ArrayList<WxMpDraftCoverInfo.CropPercent> cropPercents = new ArrayList<>();
cropPercents.add(new WxMpDraftCoverInfo.CropPercent("1_1", "0.1", "0", "1", "0.9"));
WxMpDraftArticles draftArticle = WxMpDraftArticles.builder()
.articleType(WxConsts.ArticleType.NEWS_PIC)
.title("新建图片草稿")
.content("图片消息的具体内容")
// 打开评论、所有人可评论
.needOpenComment(1).onlyFansCanComment(0)
.imageInfo(WxMpDraftImageInfo.builder().imageList(imageItems).build())
.coverInfo(WxMpDraftCoverInfo.builder().cropPercentList(cropPercents).build())
.productInfo(WxMpDraftProductInfo.builder().footerProductInfo(new WxMpDraftProductInfo.FooterProductInfo("")).build())
.build();
draftArticleList.add(draftArticle);
WxMpAddDraft addDraft = WxMpAddDraft.builder().articles(draftArticleList).build();
String mediaId = this.wxService.getDraftService().addDraft(addDraft);
System.out.println(mediaId);
assertThat(mediaId).isNotNull();
}
@Test
public void testGetDraftPic() throws WxErrorException {
final WxMpDraftInfo draftInfo = this.wxService.getDraftService().getDraft(mediaId);
assertThat(draftInfo).isNotNull();
System.out.println(draftInfo.toJson());
// 【响应数据】:{
// "news_item": [
// {
// "article_type": "newspic",
// "title": "新建图片草稿",
// "content": "图片消息的具体内容",
// "thumb_media_id": "-V3dxNv-eyJlImuJjWrmaTPt76BS6jHrL6-cGBlFPaXxAuv0qeJYV2p6Ezirr0zS",
// "need_open_comment": 1,
// "only_fans_can_comment": 0,
// "url": "http://mp.weixin.qq.com/s?__biz=MzkyNTg4NDM1NA==&tempkey=MTMyM18rUktkOHFIQm5Kd3U5Rk1yS2NRYWtyZWUyNDNwS2MxZTZ3VXBKTkVScExpUFdGYzN2X0IzOEl1NGxEMGFpYld6NmdvbE9UUzlyYUdiVklvWTQ2YlRzSkkzQlpWMEZpcG9JRWp5LWZCVVNoWURodUlfWnE4VWZVQnlPd2VaUkg5SGREYUd3TW1wQkhlbTFuenBvRzFIbUxhMEJVbEo0Z3oyd2tnSGJBfn4%3D&chksm=423e8b9e75490288e8388c9ee91d6dad462bbce654742edd316622ab2b2fcfc593a4db58577b#rd",
// "thumb_url": "http://mmbiz.qpic.cn/sz_mmbiz_jpg/s7FE7rYN42QgPuJeXX9MfNuJBiaoalrWv8fj4AEqnK0WBM3KzqS0DsqHIW4epA3cx1PGjpco87BTssgQibvSNBIQ/0?wx_fmt=jpeg",
// "image_info": {
// "image_list": [
// {
// "image_media_id": "-V3dxNv-eyJlImuJjWrmaTPt76BS6jHrL6-cGBlFPaXxAuv0qeJYV2p6Ezirr0zS"
// }
// ]
// }
// }
// ]
// }
}
@Test
public void testUpdateDraftPic() throws WxErrorException {
ArrayList<WxMpDraftImageInfo.ImageItem> imageItems = new ArrayList<>();
imageItems.add(new WxMpDraftImageInfo.ImageItem(thumbMediaId));
ArrayList<WxMpDraftCoverInfo.CropPercent> cropPercents = new ArrayList<>();
cropPercents.add(new WxMpDraftCoverInfo.CropPercent("1_1", "0.3", "0", "1", "0.7"));
WxMpDraftArticles draftArticle = WxMpDraftArticles.builder()
.articleType(WxConsts.ArticleType.NEWS_PIC)
.title("修改图片草稿")
.content("修改后的图片消息的具体内容")
// 打开评论、所有人可评论
.needOpenComment(1).onlyFansCanComment(0)
.imageInfo(WxMpDraftImageInfo.builder().imageList(imageItems).build())
.coverInfo(WxMpDraftCoverInfo.builder().cropPercentList(cropPercents).build())
.productInfo(WxMpDraftProductInfo.builder().footerProductInfo(new WxMpDraftProductInfo.FooterProductInfo("")).build())
.build();
WxMpUpdateDraft updateDraft = WxMpUpdateDraft.builder()
.mediaId(mediaId)
.index(0)
.articles(draftArticle)
.build();
Boolean updateDraftResult = this.wxService.getDraftService().updateDraft(updateDraft);
assertThat(updateDraftResult).isTrue();
}
@Test
public void testDelDraftPic() throws WxErrorException {
Boolean delDraftResult = this.wxService.getDraftService().delDraft(mediaId);
System.out.println(delDraftResult);
// 【响应数据】:{"errcode":0,"errmsg":"ok"}
assertThat(delDraftResult).isTrue();
}
}