🆕 #1668 企业微信增加外部联系人发送消息的接口

This commit is contained in:
Dean Wong 2020-07-15 09:36:00 +08:00 committed by GitHub
parent 03c143b09a
commit 7c0a38e1a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 142 additions and 10 deletions

View File

@ -88,6 +88,7 @@ public interface WxCpExternalContactService {
/**
* 企业和第三方可通过此接口获取所有离职成员的客户列表并可进一步调用离职成员的外部联系人再分配接口将这些客户重新分配给其他企业成员
*
* @param page
* @param pageSize
* @return
@ -97,22 +98,24 @@ public interface WxCpExternalContactService {
/**
* 企业可通过此接口将已离职成员的外部联系人分配给另一个成员接替联系
*
* @param externalUserid
* @param handOverUserid
* @param takeOverUserid
* @return
* @throws WxErrorException
*/
WxCpBaseResp transferExternalContact(String externalUserid,String handOverUserid,String takeOverUserid)throws WxErrorException;
WxCpBaseResp transferExternalContact(String externalUserid, String handOverUserid, String takeOverUserid) throws WxErrorException;
/** <pre>
* 该接口用于获取配置过客户群管理的客户群列表
* 企业需要使用客户联系secret或配置到可调用应用列表中的自建应用secret所获取的accesstoken来调用accesstoken如何获取
* 暂不支持第三方调用
* 微信文档https://work.weixin.qq.com/api/doc/90000/90135/92119
* </pre>
*/
WxCpUserExternalGroupChatList listGroupChat(Integer pageIndex,Integer pageSize,int status,String[] userIds,String[] partyIds) throws WxErrorException;
/**
* <pre>
* 该接口用于获取配置过客户群管理的客户群列表
* 企业需要使用客户联系secret或配置到可调用应用列表中的自建应用secret所获取的accesstoken来调用accesstoken如何获取
* 暂不支持第三方调用
* 微信文档https://work.weixin.qq.com/api/doc/90000/90135/92119
* </pre>
*/
WxCpUserExternalGroupChatList listGroupChat(Integer pageIndex, Integer pageSize, int status, String[] userIds, String[] partyIds) throws WxErrorException;
/**
* <pre>
@ -135,6 +138,7 @@ public interface WxCpExternalContactService {
* 第三方应用需拥有企业客户权限
* 第三方/自建应用调用时传入的userid和partyid要在应用的可见范围内;
* </pre>
*
* @param startTime
* @param endTime
* @param userIds
@ -150,6 +154,7 @@ public interface WxCpExternalContactService {
* 企业需要使用客户联系secret或配置到可调用应用列表中的自建应用secret所获取的accesstoken来调用accesstoken如何获取
* 暂不支持第三方调用
* </pre>
*
* @param startTime
* @param orderBy
* @param orderAsc
@ -160,5 +165,7 @@ public interface WxCpExternalContactService {
* @return
* @throws WxErrorException
*/
WxCpUserExternalGroupChatStatistic getGroupChatStatistic(Date startTime,Integer orderBy,Integer orderAsc,Integer pageIndex,Integer pageSize, String[] userIds, String[] partyIds) throws WxErrorException;
WxCpUserExternalGroupChatStatistic getGroupChatStatistic(Date startTime, Integer orderBy, Integer orderAsc, Integer pageIndex, Integer pageSize, String[] userIds, String[] partyIds) throws WxErrorException;
WxCpMsgTemplateAddResult addMsgTemplate(WxCpMsgTemplate wxCpMsgTemplate) throws WxErrorException;
}

View File

@ -150,4 +150,11 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
final String result = this.mainService.post(url, json.toString());
return WxCpUserExternalGroupChatStatistic.fromJson(result);
}
@Override
public WxCpMsgTemplateAddResult addMsgTemplate(WxCpMsgTemplate wxCpMsgTemplate) throws WxErrorException {
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(ADD_MSG_TEMPLATE);
final String result = this.mainService.post(url, wxCpMsgTemplate.toJson());
return WxCpMsgTemplateAddResult.fromJson(result);
}
}

View File

@ -0,0 +1,81 @@
package me.chanjar.weixin.cp.bean;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* 企业群发消息任务
* <p>
* Created by songfan on 2020/7/14.
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WxCpMsgTemplate implements Serializable {
private static final long serialVersionUID = 3172331565173474358L;
@SerializedName("chat_type")
private String chatType;
@SerializedName("external_userid")
private List<String> externalUserid;
private String sender;
private Text text;
private Image image;
private Link link;
private Miniprogram miniprogram;
public static WxCpMsgTemplate fromJson(String json) {
return WxCpGsonBuilder.create().fromJson(json, WxCpMsgTemplate.class);
}
public String toJson() {
return WxCpGsonBuilder.create().toJson(this);
}
@Data
public class Text {
private String content;
}
@Data
public class Image {
@SerializedName("media_id")
private String mediaId;
@SerializedName("pic_url")
private String picUrl;
}
@Data
public class Link {
private String title;
@SerializedName("picurl")
private String picUrl;
private String desc;
private String url;
}
@Data
public class Miniprogram {
private String title;
@SerializedName("pic_media_id")
private String picMediaId;
private String appid;
private String page;
}
}

View File

@ -0,0 +1,36 @@
package me.chanjar.weixin.cp.bean;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* Created by songfan on 2020/7/14.
*/
@Data
public class WxCpMsgTemplateAddResult implements Serializable {
private static final long serialVersionUID = -5166048319463473188L;
@SerializedName("errcode")
private Integer errCode;
@SerializedName("errmsg")
private String errMsg;
@SerializedName("fail_list")
private List<String> failList;
@SerializedName("msgid")
private String msgId;
public static WxCpMsgTemplateAddResult fromJson(String json) {
return WxCpGsonBuilder.create().fromJson(json, WxCpMsgTemplateAddResult.class);
}
public String toJson() {
return WxCpGsonBuilder.create().toJson(this);
}
}

View File

@ -126,5 +126,6 @@ public final class WxCpApiPathConsts {
public static final String GROUP_CHAT_INFO = "/cgi-bin/externalcontact/groupchat/get";
public static final String LIST_USER_BEHAVIOR_DATA = "/cgi-bin/externalcontact/get_user_behavior_data";
public static final String LIST_GROUP_CHAT_DATA = "/cgi-bin/externalcontact/groupchat/statistic";
public static final String ADD_MSG_TEMPLATE = "/cgi-bin/externalcontact/add_msg_template";
}
}