From 3ab8a3c7c6b094cca6ec1fa7615a4296314e1713 Mon Sep 17 00:00:00 2001 From: BinaryWang Date: Thu, 8 Sep 2016 21:11:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpUserTagService.java | 18 +++++++++-- .../mp/api/impl/WxMpUserTagServiceImpl.java | 30 +++++++++++++------ .../chanjar/weixin/mp/bean/tag/WxUserTag.java | 13 +++++++- .../api/impl/WxMpUserTagServiceImplTest.java | 10 +++++++ 4 files changed, 58 insertions(+), 13 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserTagService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserTagService.java index c909f9ce..1f4277da 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserTagService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserTagService.java @@ -1,5 +1,7 @@ package me.chanjar.weixin.mp.api; +import java.util.List; + import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.bean.tag.WxUserTag; @@ -13,14 +15,24 @@ public interface WxMpUserTagService { /** *
-   *   创建标签
-   *   一个公众号,最多可以创建100个标签。
+   * 创建标签
+   * 一个公众号,最多可以创建100个标签。
    * 详情请见:用户标签管理
    * 接口url格式: https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN
    * 
* - * @param name 分组名字(30个字符以内) + * @param name 标签名字(30个字符以内) */ WxUserTag tagCreate(String name) throws WxErrorException; + /** + *
+   * 获取公众号已创建的标签
+   * 详情请见:用户标签管理
+   * 接口url格式: https://api.weixin.qq.com/cgi-bin/tags/get?access_token=ACCESS_TOKEN
+   * 
+ * + */ + List tagGet() throws WxErrorException; + } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserTagServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserTagServiceImpl.java index 2fce5443..fb934961 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserTagServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserTagServiceImpl.java @@ -1,13 +1,16 @@ package me.chanjar.weixin.mp.api.impl; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.google.gson.JsonObject; + import me.chanjar.weixin.common.exception.WxErrorException; -import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.WxMpUserTagService; import me.chanjar.weixin.mp.bean.tag.WxUserTag; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @@ -15,7 +18,8 @@ import org.slf4j.LoggerFactory; * Created by Binary Wang on 2016/9/2. */ public class WxMpUserTagServiceImpl implements WxMpUserTagService { - protected final Logger log = LoggerFactory.getLogger(WxMpDataCubeServiceImpl.class); + protected final Logger log = LoggerFactory + .getLogger(WxMpDataCubeServiceImpl.class); private static final String API_URL_PREFIX = "https://api.weixin.qq.com/cgi-bin/tags"; private WxMpService wxMpService; @@ -32,11 +36,19 @@ public class WxMpUserTagServiceImpl implements WxMpUserTagService { groupJson.addProperty("name", name); json.add("tag", groupJson); - String responseContent = this.wxMpService.execute( - new SimplePostRequestExecutor(), - url, - json.toString()); - this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, name, responseContent); + String responseContent = this.wxMpService.post(url, json.toString()); + this.log.debug("\nurl:{}\nparams:{}\nresponse:{}", url, name, + responseContent); return WxUserTag.fromJson(responseContent); } + + @Override + public List tagGet() throws WxErrorException { + String url = API_URL_PREFIX + "/get"; + + String responseContent = this.wxMpService.get(url, null); + this.log.debug("\nurl:{}\nparams:{}\nresponse:{}", url, "[empty]", + responseContent); + return WxUserTag.listFromJson(responseContent); + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxUserTag.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxUserTag.java index 1f03019e..d9e07d04 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxUserTag.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/tag/WxUserTag.java @@ -1,9 +1,12 @@ package me.chanjar.weixin.mp.bean.tag; +import java.util.List; + import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.google.gson.JsonParser; +import com.google.gson.reflect.TypeToken; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; @@ -53,7 +56,15 @@ public class WxUserTag { } public static WxUserTag fromJson(String json) { - return WxMpGsonBuilder.create().fromJson(new JsonParser().parse(json).getAsJsonObject().get("tag"), WxUserTag.class); + return WxMpGsonBuilder.create().fromJson( + new JsonParser().parse(json).getAsJsonObject().get("tag"), + WxUserTag.class); + } + + public static List listFromJson(String json) { + return WxMpGsonBuilder.create().fromJson( + new JsonParser().parse(json).getAsJsonObject().get("tags"), + new TypeToken>(){}.getType()); } public String toJson() { diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpUserTagServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpUserTagServiceImplTest.java index af8125bf..ea7799dd 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpUserTagServiceImplTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpUserTagServiceImplTest.java @@ -3,6 +3,9 @@ package me.chanjar.weixin.mp.api.impl; import com.google.inject.Inject; import me.chanjar.weixin.mp.api.ApiTestModule; import me.chanjar.weixin.mp.bean.tag.WxUserTag; + +import java.util.List; + import org.testng.Assert; import org.testng.annotations.Guice; import org.testng.annotations.Test; @@ -26,4 +29,11 @@ public class WxMpUserTagServiceImplTest { Assert.assertEquals(tagName, res.getName()); } + @Test + public void testTagGet() throws Exception { + List res = this.wxService.getUserTagService().tagGet(); + System.out.println(res); + Assert.assertNotNull(res); + } + } \ No newline at end of file