mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-14 02:05:12 +08:00
#583 企业微信通讯录管理增加邀请成员接口
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package me.chanjar.weixin.cp.api;
|
||||
|
||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||
import me.chanjar.weixin.cp.bean.WxCpInviteResult;
|
||||
import me.chanjar.weixin.cp.bean.WxCpUser;
|
||||
|
||||
import java.util.List;
|
||||
@@ -84,18 +85,18 @@ public interface WxCpUserService {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 邀请成员关注
|
||||
* http://qydev.weixin.qq.com/wiki/index.php?title=管理成员#.E9.82.80.E8.AF.B7.E6.88.90.E5.91.98.E5.85.B3.E6.B3.A8
|
||||
* 邀请成员
|
||||
* 企业可通过接口批量邀请成员使用企业微信,邀请后将通过短信或邮件下发通知。
|
||||
* 请求方式:POST(HTTPS)
|
||||
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/batch/invite?access_token=ACCESS_TOKEN
|
||||
* 文档地址:https://work.weixin.qq.com/api/doc#12543
|
||||
* </pre>
|
||||
*
|
||||
* @param userId 用户的userid
|
||||
* @param inviteTips 推送到微信上的提示语(只有认证号可以使用)。当使用微信推送时,该字段默认为“请关注XXX企业号”,邮件邀请时,该字段无效。
|
||||
* @return 1:微信邀请 2.邮件邀请
|
||||
* @deprecated api obsoleted. 邀请关注的功能微信企业号已经下线了,
|
||||
* 详细请参考该链接点击查看 https://qy.weixin.qq.com/cgi-bin/homepagenotify?action=get&id=46
|
||||
* @param userIds 成员ID列表, 最多支持1000个。
|
||||
* @param partyIds 部门ID列表,最多支持100个。
|
||||
* @param tagIds 标签ID列表,最多支持100个。
|
||||
*/
|
||||
@Deprecated
|
||||
int invite(String userId, String inviteTips) throws WxErrorException;
|
||||
WxCpInviteResult invite(List<String> userIds, List<String> partyIds, List<String> tagIds) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
|
@@ -6,9 +6,9 @@ import com.google.gson.reflect.TypeToken;
|
||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||
import me.chanjar.weixin.cp.api.WxCpService;
|
||||
import me.chanjar.weixin.cp.api.WxCpUserService;
|
||||
import me.chanjar.weixin.cp.bean.WxCpInviteResult;
|
||||
import me.chanjar.weixin.cp.bean.WxCpUser;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -116,17 +116,34 @@ public class WxCpUserServiceImpl implements WxCpUserService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int invite(String userId, String inviteTips) throws WxErrorException {
|
||||
String url = "https://qyapi.weixin.qq.com/cgi-bin/invite/send";
|
||||
public WxCpInviteResult invite(List<String> userIds, List<String> partyIds, List<String> tagIds) throws WxErrorException {
|
||||
String url = "https://qyapi.weixin.qq.com/cgi-bin/batch/invite";
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
jsonObject.addProperty("userid", userId);
|
||||
if (StringUtils.isNotEmpty(inviteTips)) {
|
||||
jsonObject.addProperty("invite_tips", inviteTips);
|
||||
if (userIds != null) {
|
||||
JsonArray jsonArray = new JsonArray();
|
||||
for (String userId : userIds) {
|
||||
jsonArray.add(new JsonPrimitive(userId));
|
||||
}
|
||||
jsonObject.add("user", jsonArray);
|
||||
}
|
||||
String responseContent = this.mainService.post(url, jsonObject.toString());
|
||||
JsonElement tmpJsonElement = new JsonParser().parse(responseContent);
|
||||
return tmpJsonElement.getAsJsonObject().get("type").getAsInt();
|
||||
|
||||
if (partyIds != null) {
|
||||
JsonArray jsonArray = new JsonArray();
|
||||
for (String userId : partyIds) {
|
||||
jsonArray.add(new JsonPrimitive(userId));
|
||||
}
|
||||
jsonObject.add("party", jsonArray);
|
||||
}
|
||||
|
||||
if (tagIds != null) {
|
||||
JsonArray jsonArray = new JsonArray();
|
||||
for (String tagId : tagIds) {
|
||||
jsonArray.add(new JsonPrimitive(tagId));
|
||||
}
|
||||
jsonObject.add("tag", jsonArray);
|
||||
}
|
||||
|
||||
return WxCpInviteResult.fromJson(this.mainService.post(url, jsonObject.toString()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -0,0 +1,60 @@
|
||||
package me.chanjar.weixin.cp.bean;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.common.util.ToStringUtils;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 邀请成员的结果对象类.
|
||||
* Created by Binary Wang on 2018-5-13.
|
||||
*
|
||||
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||
*/
|
||||
@Data
|
||||
public class WxCpInviteResult implements Serializable {
|
||||
private static final long serialVersionUID = 1420065684270213578L;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return ToStringUtils.toSimpleString(this);
|
||||
}
|
||||
|
||||
public static WxCpInviteResult fromJson(String json) {
|
||||
return WxCpGsonBuilder.INSTANCE.create().fromJson(json, WxCpInviteResult.class);
|
||||
}
|
||||
|
||||
@SerializedName("errcode")
|
||||
private Integer errCode;
|
||||
|
||||
@SerializedName("errmsg")
|
||||
private String errMsg;
|
||||
|
||||
@SerializedName("invaliduser")
|
||||
private String invalidUsers;
|
||||
|
||||
@SerializedName("invalidparty")
|
||||
private String[] invalidParties;
|
||||
|
||||
@SerializedName("invalidtag")
|
||||
private String[] invalidTags;
|
||||
|
||||
public List<String> getInvalidUserList() {
|
||||
return this.content2List(this.invalidUsers);
|
||||
}
|
||||
|
||||
private List<String> content2List(String content) {
|
||||
if (StringUtils.isBlank(content)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
return Splitter.on("|").splitToList(content);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user