6.8.2 创建分组
一个公众账号最多支持创建500个分组,分组名称允许重复。
1.接口描述
创建分组接口的请求地址如下:
- https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN
创建分组时需要POST如下格式的JSON数据包:
- {"group" : {"name" : "test"}}
上述JSON数据包表示创建一个名称为"test"的分组。其中,参数name表示分组名称,长度要求小于30个字符。接口调用成功时返回的JSON结果如下:
- {
- "group": {
- "id": 107,
- "name": "test"
- }
- }
上述结果表示成功创建名称为"test"的分组,并且分组id为107。
接口调用失败时返回的JSON结果示例如下:
- {"errcode":40013,"errmsg":"invalid appid"}
2.方法封装
笔者将创建分组的操作封装成createGroup()方法,该方法的实现如下:
- /**
- * 创建分组
- *
- * @param accessToken 接口访问凭证
- * @param groupName 分组名称
- * @return
- */
- public static WeixinGroup createGroup(String accessToken, String groupName) {
- WeixinGroup weixinGroup = null;
- // 拼接请求地址
- String requestUrl = "https://api.weixin.qq.com/cgi-bin/
- groups/create?access_token=ACCESS_TOKEN";
- requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken);
- // 需要提交的JSOT数据
- String jsonData = "{\"group\" : {\"name\" : \"%s\"}}";
- // 创建分组
- JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "POST",
- String.format(jsonData, groupName));
- if (null != jsonObject) {
- try {
- weixinGroup = new WeixinGroup();
- weixinGroup.setId(jsonObject.getJSONObject("group").getInt("id"));
- weixinGroup.setName(jsonObject.getJSONObject("group").getString("name"));
- } catch (JSONException e) {
- weixinGroup = null;
- int errorCode = jsonObject.getInt("errcode");
- String errorMsg = jsonObject.getString("errmsg");
- log.error("创建分组失败 errcode:{} errmsg:{}", errorCode, errorMsg);
- }
- }
- return weixinGroup;
- }
createGroup()方法的返回值是一个WeixinGroup对象,用于封装创建分组接口返回的参数,在6.8.1节中封装查询分组方法时介绍过该类的定义。
3.案例:创建分组
下面是调用createGroup()方法创建分组的案例。
- public static void main(String args[]) {
- // 获取接口访问凭证
- String accessToken = CommonUtil.getToken("APPID", "APPSECRET").getAccessToken();
- // 创建分组
- WeixinGroup group = createGroup(accessToken, "公司员工");
- System.out.println(String.format("成功创建分组:%s id:%d", group.getName(),group.getId()));
- }
上面案例的运行结果为“成功创建分组:公司员工id:100”。需要注意的是,分组名称允许重复,如果多次运行上面的示例将会创建多个名称为“公司员工”的分组,但是分组id不同。对于开发者自定义的分组,分组id从100开始递增,每次加1。