From 7e21f4692b37783b883e372eaeb25298c1e82767 Mon Sep 17 00:00:00 2001 From: BinaryWang Date: Wed, 21 Sep 2016 21:05:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=BA=AB=E4=B8=8A=E7=9A=84=E6=A0=87=E7=AD=BE=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=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 | 11 ++++++++++ .../mp/api/impl/WxMpUserTagServiceImpl.java | 20 +++++++++++++++++++ .../api/impl/WxMpUserTagServiceImplTest.java | 8 ++++++++ 3 files changed, 39 insertions(+) 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 3bbe98ee..406842db 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 @@ -86,4 +86,15 @@ public interface WxMpUserTagService { */ boolean batchUntagging(Integer tagId, String[] openids) throws WxErrorException; + + /** + *
+   * 获取用户身上的标签列表
+   * 详情请见:用户标签管理
+   * 接口url格式: https://api.weixin.qq.com/cgi-bin/tags/getidlist?access_token=ACCESS_TOKEN
+   * 
+ * + */ + List userTagList(String openid) 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 1d7ea0ff..d2bb3213 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 @@ -2,12 +2,15 @@ package me.chanjar.weixin.mp.api.impl; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.gson.reflect.TypeToken; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.WxMpUserTagService; import me.chanjar.weixin.mp.bean.tag.WxTagListUser; import me.chanjar.weixin.mp.bean.tag.WxUserTag; +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -153,4 +156,21 @@ public class WxMpUserTagServiceImpl implements WxMpUserTagService { throw new WxErrorException(wxError); } + + @Override + public List userTagList(String openid) throws WxErrorException { + String url = "https://api.weixin.qq.com/cgi-bin/tags/getidlist"; + + JsonObject json = new JsonObject(); + json.addProperty("openid", openid); + + String responseContent = this.wxMpService.post(url, json.toString()); + this.log.debug("\nurl:{}\nparams:{}\nresponse:{}", url, json.toString(), + responseContent); + + return WxMpGsonBuilder.create().fromJson( + new JsonParser().parse(responseContent).getAsJsonObject().get("tagid_list"), + new TypeToken>() { + }.getType()); + } } 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 8422ab66..5ccae195 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 @@ -68,4 +68,12 @@ public class WxMpUserTagServiceImplTest { System.out.println(res); Assert.assertTrue(res); } + + @Test + public void testUserTagList() throws Exception { + List res = this.wxService.getUserTagService().userTagList( + ((ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage()).getOpenid()); + System.out.println(res); + Assert.assertNotNull(res); + } }