6.8.3 修改分组名

修改分组名接口的作用是修改指定ID的分组名称。

1.接口描述

修改分组名接口的请求地址如下:

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

修改分组名时需要POST如下格式的JSON数据包:

  1. {
  2. "group": {
  3. "id": 108,
  4. "name": "test2_modify2"
  5. }
  6. }

上述JSON数据包表示将id为108的分组名称修改为“test2_modify2”。

接口调用成功时返回的JSON结果如下:

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

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

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

2.方法封装

笔者将修改分组的操作封装成updateGroup()方法,该方法的实现如下:

  1. /**
  2. * 修改分组名
  3. *
  4. * @param accessToken 接口访问凭证
  5. * @param groupId 分组id
  6. * @param groupName 修改后的分组名
  7. * @return true | false
  8. */
  9. public static boolean updateGroup(String accessToken,
  10. int groupId, String groupName) {
  11. boolean result = false;
  12. // 拼接请求地址
  13. String requestUrl = "https://api.weixin.qq.com/cgi-bin/
  14. groups/update?access_token=ACCESS_TOKEN";
  15. requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken);
  16. // 需要提交的JSON数据
  17. String jsonData = "{\"group\": {\"id\": %d, \"name\": \"%s\"}}";
  18. // 修改分组名
  19. JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "POST",
  20. String.format(jsonData, groupId, groupName));
  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.案例:修改分组名

下面是调用updateGroup()方法修改分组名的案例。

  1. public static void main(String args[]) {
  2. // 获取接口访问凭证
  3. String accessToken = CommonUtil.getToken("APPID", "APPSECRET").getAccessToken();
  4. // 修改分组名
  5. updateGroup(accessToken, 100, "同事");
  6. }

上面示例的作用是将id为100的分组名称修改为“同事”。如果公众账号存在id为100的分组,将会看到如下运行结果:

  1. [INFO ] 2013-11-11 02:54:56,010 org.liufeng.course.util.AdvancedUtil 修改分组名成功 errcode:0 errmsg:ok