From 4ab6fef02e0081ce58b99d1357b2f4ade2bc2ed7 Mon Sep 17 00:00:00 2001 From: jinyu Date: Wed, 22 Jul 2015 10:46:41 +0800 Subject: [PATCH] =?UTF-8?q?weixin4j-qy:=E5=88=9B=E5=BB=BA=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E6=97=B6=E5=8F=AF=E4=BB=A5=E6=8C=87=E5=AE=9AID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGE.md | 6 ++++- .../com/foxinmy/weixin4j/tuple/Music.java | 2 +- .../com/foxinmy/weixin4j/type/MediaType.java | 13 +++++----- .../com/foxinmy/weixin4j/mp/api/MediaApi.java | 2 +- weixin4j-qy/CHANGE.md | 6 ++++- .../com/foxinmy/weixin4j/qy/WeixinProxy.java | 9 +++---- .../com/foxinmy/weixin4j/qy/api/MediaApi.java | 2 +- .../com/foxinmy/weixin4j/qy/api/TagApi.java | 24 ++++++++++++------- .../com/foxinmy/weixin4j/qy/model/Tag.java | 4 ++++ .../com/foxinmy/weixin4j/qy/test/TagTest.java | 2 +- 10 files changed, 45 insertions(+), 25 deletions(-) diff --git a/CHANGE.md b/CHANGE.md index 8a7bbcc6..625f6e11 100644 --- a/CHANGE.md +++ b/CHANGE.md @@ -367,4 +367,8 @@ + **weixin4j-qy**: 新增[媒体素材接口](weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java) - + released 1.5.1 \ No newline at end of file + + released 1.5.1 + +* 2015-07-22 + + + **weixin4j-qy**: 创建标签时可以指定ID \ No newline at end of file diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/tuple/Music.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/tuple/Music.java index d9d884d1..5dee0a52 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/tuple/Music.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/tuple/Music.java @@ -56,7 +56,7 @@ public class Music implements NotifyTuple { private String thumbMediaId; public Music(String thumbMediaId) { - this(null, null, null, null, thumbMediaId); + this.thumbMediaId = thumbMediaId; } public Music(String title, String desc, String musicUrl, String hqMusicUrl, diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/MediaType.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/MediaType.java index 3cbf15e8..4a1d62f6 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/MediaType.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/MediaType.java @@ -5,17 +5,18 @@ import com.foxinmy.weixin4j.http.ContentType; /** * 上传的媒体类型
*

- * 公众平台上传限制:
图片(image): 128K,支持JPG,PNG格式
- * 语音(voice):256K,播放长度不超过60s,支持AMR\MP3格式
视频(video):1MB,支持MP4格式
+ * 公众平台上传限制:
图片(image): 2MB,支持bmp/png/jpeg/jpg/gif格式
+ * 语音(voice):2MB,播放长度不超过60s,支持mp3/wma/wav/amr格式
+ * 视频(video):10MB,支持rm/rmvb/wmv/avi/mpg/mpeg/mp4格式
* 缩略图(thumb):64KB,支持JPG格式
*

*

- * 企业号上传限制:
图片(image):1MB,支持JPG格式
- * 语音(voice):2MB,播放长度不超过60s,支持AMR格式
视频(video):10MB,支持MP4格式
- * 普通文件(file):20MB
+ * 企业号上传限制:
图片(image):1MB,支持bmp/png/jpeg/jpg/gif格式
+ * 语音(voice):2MB,播放长度不超过60s,支持mp3/wma/wav/amr格式
+ * 视频(video):10MB,支持rm/rmvb/wmv/avi/mpg/mpeg/mp4格式
普通文件(file):20MB
*

*

- * 媒体文件在后台保存时间为3天,即3天后media_id失效 + * 临时媒体文件在后台保存时间为3天,即3天后media_id失效 *

* * @author jy.hu diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java index e9910638..ae4028cc 100644 --- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java +++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java @@ -78,7 +78,7 @@ public class MediaApi extends MpApi { mediaType = MediaType.image; } else if ("mp3/wma/wav/amr".contains(mediaTypeKey)) { mediaType = MediaType.voice; - } else if ("mp4".equals(mediaTypeKey)) { + } else if ("rm/rmvb/wmv/avi/mpg/mpeg/mp4".equals(mediaTypeKey)) { mediaType = MediaType.video; } else { throw new WeixinException("cannot handle mediaType:" + mediaTypeKey); diff --git a/weixin4j-qy/CHANGE.md b/weixin4j-qy/CHANGE.md index 04af086c..572cb5a1 100644 --- a/weixin4j-qy/CHANGE.md +++ b/weixin4j-qy/CHANGE.md @@ -74,4 +74,8 @@ + 新增[媒体素材接口](src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java) - + released 1.5.1 \ No newline at end of file + + released 1.5.1 + +* 2015-07-22 + + + 创建标签时可以指定ID \ No newline at end of file diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java index b3838ac0..a0475230 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java @@ -702,16 +702,17 @@ public class WeixinProxy { /** * 创建标签(创建的标签属于管理组;默认为未加锁状态) * - * @param tagName - * 标签名称 + * @param tag + * 标签对象;
标签名称,长度为1~64个字节,标签名不可与其他标签重名;
标签id,整型, + * 指定此参数时新增的标签会生成对应的标签id,不指定时则以目前最大的id自增。 * @see 创建标签说明 * @see com.foxinmy.weixin4j.qy.api.TagApi * @return 标签ID * @throws WeixinException */ - public int createTag(String tagName) throws WeixinException { - return tagApi.createTag(tagName); + public int createTag(Tag tag) throws WeixinException { + return tagApi.createTag(tag); } /** diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java index 9ec6aaec..04a44b30 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java @@ -83,7 +83,7 @@ public class MediaApi extends QyApi { mediaType = MediaType.image; } else if ("mp3/wma/wav/amr".contains(mediaTypeKey)) { mediaType = MediaType.voice; - } else if ("mp4".equals(mediaTypeKey)) { + } else if ("rm/rmvb/wmv/avi/mpg/mpeg/mp4".equals(mediaTypeKey)) { mediaType = MediaType.video; } else { mediaType = MediaType.file; diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/TagApi.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/TagApi.java index 2c0409cf..6b682d3d 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/TagApi.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/TagApi.java @@ -32,26 +32,32 @@ public class TagApi extends QyApi { /** * 创建标签(创建的标签属于管理组;默认为加锁状态。加锁状态下只有本管理组才可以增删成员,解锁状态下其它管理组也可以增删成员) * - * @param tagName - * 标签名称 + * @param tag + * 标签对象;
标签名称,长度为1~64个字节,标签名不可与其他标签重名;
标签id,整型, + * 指定此参数时新增的标签会生成对应的标签id,不指定时则以目前最大的id自增。 * @see 创建标签说明 * @return 标签ID * @throws WeixinException */ - public int createTag(String tagName) throws WeixinException { + public int createTag(Tag tag) throws WeixinException { String tag_create_uri = getRequestUri("tag_create_uri"); Token token = tokenHolder.getToken(); + JSONObject obj = (JSONObject) JSON.toJSON(tag); + if (obj.getIntValue("tagid") <= 0) { + obj.remove("tagid"); + } WeixinResponse response = weixinClient.post( String.format(tag_create_uri, token.getAccessToken()), - String.format("{\"tagname\":\"%s\"}", tagName)); + obj.toJSONString()); return response.getAsJson().getIntValue("tagid"); } /** * 更新标签(管理组必须是指定标签的创建者) * - * @param tag 标签信息 + * @param tag + * 标签信息 * @see 更新标签说明 @@ -81,8 +87,8 @@ public class TagApi extends QyApi { public JsonResult deleteTag(int tagId) throws WeixinException { String tag_delete_uri = getRequestUri("tag_delete_uri"); Token token = tokenHolder.getToken(); - WeixinResponse response = weixinClient.post(String.format(tag_delete_uri, - token.getAccessToken(), tagId)); + WeixinResponse response = weixinClient.post(String.format( + tag_delete_uri, token.getAccessToken(), tagId)); return response.getAsJsonResult(); } @@ -118,8 +124,8 @@ public class TagApi extends QyApi { public List getTagUsers(int tagId) throws WeixinException { String tag_get_user_uri = getRequestUri("tag_get_user_uri"); Token token = tokenHolder.getToken(); - WeixinResponse response = weixinClient.post(String.format(tag_get_user_uri, - token.getAccessToken(), tagId)); + WeixinResponse response = weixinClient.post(String.format( + tag_get_user_uri, token.getAccessToken(), tagId)); return JSON.parseArray(response.getAsJson().getString("userlist"), User.class); } diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/model/Tag.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/model/Tag.java index 95a59d56..44dc7587 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/model/Tag.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/model/Tag.java @@ -32,6 +32,10 @@ public class Tag implements Serializable { } + public Tag(String name) { + this.name = name; + } + public Tag(int id, String name) { this.id = id; this.name = name; diff --git a/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/TagTest.java b/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/TagTest.java index 1f8ee9b0..9178768a 100644 --- a/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/TagTest.java +++ b/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/TagTest.java @@ -32,7 +32,7 @@ public class TagTest extends TokenTest { @Test public void create() throws WeixinException { - int tagId = tagApi.createTag("coder"); + int tagId = tagApi.createTag(new Tag("coder")); Assert.assertTrue(tagId > 0); }