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);
+ }
}