6.8.4 移动用户分组

移动用户分组接口的作用是将用户(OpenID)移动到指定的分组下。

1.接口描述

移动用户分组接口的请求地址如下:

  1. https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=ACCESS_TOKEN

调用移动用户分组接口时需要POST如下格式的JSON数据包:

  1. {"openid":"oDF3iYx0ro3_7jD4HFRDfrjdCM58","to_groupid":108}

上述JSON数据包表示将OpenID为“oDF3iYx0ro3_7jD4HFRDfrjdCM58”的用户移动到id为108的分组下。

接口调用正确时返回的JSON结果如下:

  1. {"errcode": 0, "errmsg": "ok"}

接口调用错误时返回的JSON结果示例如下:

  1. {"errcode":40013,"errmsg":"invalid appid"}

2.方法封装

笔者将移动用户分组的操作封装成updateMemberGroup()方法,该方法的实现如下:

  1. /**
  2. * 移动用户分组
  3. *
  4. * @param accessToken 接口访问凭证
  5. * @param openId 用户标识
  6. * @param groupId 分组id
  7. * @return true | false
  8. */
  9. public static boolean updateMemberGroup(String accessToken,
  10. String openId, int groupId) {
  11. boolean result = false;
  12. // 拼接请求地址
  13. String requestUrl = "https://api.weixin.qq.com/cgi-bin/groups/
  14. members/update?access_token=ACCESS_TOKEN";
  15. requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken);
  16. // 需要提交的JSON数据
  17. String jsonData = "{\"openid\":\"%s\",\"to_groupid\":%d}";
  18. // 移动用户分组
  19. JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "POST",
  20. String.format(jsonData, openId, groupId));
  21.  
  22. if (null != jsonObject) {
  23. int errorCode = jsonObject.getInt("errcode");
  24. String errorMsg = jsonObject.getString("errmsg");
  25. if (0 == errorCode) {
  26. result = true;
  27. log.info("移动用户分组成功 errcode:{} errmsg:{}", errorCode, errorMsg);
  28. } else {
  29. log.error("移动用户分组失败 errcode:{} errmsg:{}", errorCode, errorMsg);
  30. }
  31. }
  32. return result;
  33. }

3.案例:移动用户分组

下面是调用updateMemberGroup()方法移动用户分组的案例。

  1. public static void main(String args[]) {
  2. // 获取接口访问凭证
  3. String accessToken = CommonUtil.getToken("APPID", "APPSECRET").getAccessToken();
  4. // 移动用户分组
  5. updateMemberGroup(accessToken, "oEdzejiHCDqafJbz4WNJtWTMbDcE", 100);
  6. }

如果公众账号存在id为100的分组,将会看到如下运行结果。

[INFO ] 2013-11-11 03:09:53,144 org.liufeng.course.util.AdvancedUtil 移动用户分组成功 errcode:0 errmsg:ok