6.8.4 移动用户分组
移动用户分组接口的作用是将用户(OpenID)移动到指定的分组下。
1.接口描述
移动用户分组接口的请求地址如下:
- https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=ACCESS_TOKEN
调用移动用户分组接口时需要POST如下格式的JSON数据包:
- {"openid":"oDF3iYx0ro3_7jD4HFRDfrjdCM58","to_groupid":108}
上述JSON数据包表示将OpenID为“oDF3iYx0ro3_7jD4HFRDfrjdCM58”的用户移动到id为108的分组下。
接口调用正确时返回的JSON结果如下:
- {"errcode": 0, "errmsg": "ok"}
接口调用错误时返回的JSON结果示例如下:
- {"errcode":40013,"errmsg":"invalid appid"}
2.方法封装
笔者将移动用户分组的操作封装成updateMemberGroup()方法,该方法的实现如下:
- /**
- * 移动用户分组
- *
- * @param accessToken 接口访问凭证
- * @param openId 用户标识
- * @param groupId 分组id
- * @return true | false
- */
- public static boolean updateMemberGroup(String accessToken,
- String openId, int groupId) {
- boolean result = false;
- // 拼接请求地址
- String requestUrl = "https://api.weixin.qq.com/cgi-bin/groups/
- members/update?access_token=ACCESS_TOKEN";
- requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken);
- // 需要提交的JSON数据
- String jsonData = "{\"openid\":\"%s\",\"to_groupid\":%d}";
- // 移动用户分组
- JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "POST",
- String.format(jsonData, openId, groupId));
- if (null != jsonObject) {
- int errorCode = jsonObject.getInt("errcode");
- String errorMsg = jsonObject.getString("errmsg");
- if (0 == errorCode) {
- result = true;
- log.info("移动用户分组成功 errcode:{} errmsg:{}", errorCode, errorMsg);
- } else {
- log.error("移动用户分组失败 errcode:{} errmsg:{}", errorCode, errorMsg);
- }
- }
- return result;
- }
3.案例:移动用户分组
下面是调用updateMemberGroup()方法移动用户分组的案例。
- public static void main(String args[]) {
- // 获取接口访问凭证
- String accessToken = CommonUtil.getToken("APPID", "APPSECRET").getAccessToken();
- // 移动用户分组
- updateMemberGroup(accessToken, "oEdzejiHCDqafJbz4WNJtWTMbDcE", 100);
- }
如果公众账号存在id为100的分组,将会看到如下运行结果。
[INFO ] 2013-11-11 03:09:53,144 org.liufeng.course.util.AdvancedUtil 移动用户分组成功 errcode:0 errmsg:ok