WxCpExternalContactService.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package me.chanjar.weixin.cp.api;
  2. import me.chanjar.weixin.common.error.WxErrorException;
  3. import me.chanjar.weixin.cp.bean.*;
  4. import java.util.Date;
  5. import java.util.List;
  6. /**
  7. * <pre>
  8. * 外部联系人管理接口,企业微信的外部联系人的接口和通讯录接口已经拆离
  9. * Created by Joe Cao on 2019/6/14
  10. * </pre>
  11. *
  12. * @author <a href="https://github.com/JoeCao">JoeCao</a>
  13. */
  14. public interface WxCpExternalContactService {
  15. /**
  16. * 获取外部联系人详情.
  17. * <pre>
  18. * 企业可通过此接口,根据外部联系人的userid,拉取外部联系人详情。权限说明:
  19. * 企业需要使用外部联系人管理secret所获取的accesstoken来调用
  20. * 第三方应用需拥有“企业客户”权限。
  21. * 第三方应用调用时,返回的跟进人follow_user仅包含应用可见范围之内的成员。
  22. * </pre>
  23. *
  24. * @param userId 外部联系人的userid
  25. * @return .
  26. * @deprecated 建议使用 {@link #getContactDetail(String)}
  27. */
  28. @Deprecated
  29. WxCpUserExternalContactInfo getExternalContact(String userId) throws WxErrorException;
  30. /**
  31. * 获取客户详情.
  32. * <pre>
  33. *
  34. * 企业可通过此接口,根据外部联系人的userid(如何获取?),拉取客户详情。
  35. *
  36. * 请求方式:GET(HTTPS)
  37. * 请求地址:https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get?access_token=ACCESS_TOKEN&external_userid=EXTERNAL_USERID
  38. *
  39. * 权限说明:
  40. *
  41. * 企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?);
  42. * 第三方/自建应用调用时,返回的跟进人follow_user仅包含应用可见范围之内的成员。
  43. * </pre>
  44. *
  45. * @param userId 外部联系人的userid,注意不是企业成员的帐号
  46. * @return .
  47. * @throws WxErrorException .
  48. */
  49. WxCpUserExternalContactInfo getContactDetail(String userId) throws WxErrorException;
  50. /**
  51. * 获取客户列表.
  52. * <pre>
  53. * 企业可通过此接口获取指定成员添加的客户列表。客户是指配置了客户联系功能的成员所添加的外部联系人。没有配置客户联系功能的成员,所添加的外部联系人将不会作为客户返回。
  54. *
  55. * 请求方式:GET(HTTPS)
  56. * 请求地址:https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?access_token=ACCESS_TOKEN&userid=USERID
  57. *
  58. * 权限说明:
  59. *
  60. * 企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?);
  61. * 第三方应用需拥有“企业客户”权限。
  62. * 第三方/自建应用只能获取到可见范围内的配置了客户联系功能的成员。
  63. * </pre>
  64. *
  65. * @param userId 企业成员的userid
  66. * @return List of External wx id
  67. * @throws WxErrorException .
  68. */
  69. List<String> listExternalContacts(String userId) throws WxErrorException;
  70. /**
  71. * 企业和第三方服务商可通过此接口获取配置了客户联系功能的成员(Customer Contact)列表。
  72. * <pre>
  73. * 企业需要使用外部联系人管理secret所获取的accesstoken来调用(accesstoken如何获取?);
  74. * 第三方应用需拥有“企业客户”权限。
  75. * 第三方应用只能获取到可见范围内的配置了客户联系功能的成员
  76. * </pre>
  77. *
  78. * @return List of CpUser id
  79. * @throws WxErrorException .
  80. */
  81. List<String> listFollowers() throws WxErrorException;
  82. /**
  83. * 企业和第三方可通过此接口,获取所有离职成员的客户列表,并可进一步调用离职成员的外部联系人再分配接口将这些客户重新分配给其他企业成员。
  84. * @param page
  85. * @param pageSize
  86. * @return
  87. * @throws WxErrorException
  88. */
  89. WxCpUserExternalUnassignList listUnassignedList(Integer page, Integer pageSize) throws WxErrorException;
  90. /**
  91. * 企业可通过此接口,将已离职成员的外部联系人分配给另一个成员接替联系。
  92. * @param externalUserid
  93. * @param handOverUserid
  94. * @param takeOverUserid
  95. * @return
  96. * @throws WxErrorException
  97. */
  98. WxCpBaseResp transferExternalContact(String externalUserid,String handOverUserid,String takeOverUserid)throws WxErrorException;
  99. /** <pre>
  100. * 该接口用于获取配置过客户群管理的客户群列表。
  101. * 企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?)。
  102. * 暂不支持第三方调用。
  103. * 微信文档:https://work.weixin.qq.com/api/doc/90000/90135/92119
  104. * </pre>
  105. */
  106. WxCpUserExternalGroupChatList listGroupChat(Integer pageIndex,Integer pageSize,int status,String[] userIds,String[] partyIds) throws WxErrorException;
  107. /**
  108. * <pre>
  109. * 通过客户群ID,获取详情。包括群名、群成员列表、群成员入群时间、入群方式。(客户群是由具有客户群使用权限的成员创建的外部群)
  110. * 企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?)。
  111. * 暂不支持第三方调用。
  112. * 微信文档:https://work.weixin.qq.com/api/doc/90000/90135/92122
  113. * </pre>
  114. *
  115. * @param chatId
  116. * @return
  117. * @throws WxErrorException
  118. */
  119. WxCpUserExternalGroupChatInfo getGroupChat(String chatId) throws WxErrorException;
  120. /**
  121. * <pre>
  122. * 企业可通过此接口获取成员联系客户的数据,包括发起申请数、新增客户数、聊天数、发送消息数和删除/拉黑成员的客户数等指标。
  123. * 企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?)。
  124. * 第三方应用需拥有“企业客户”权限。
  125. * 第三方/自建应用调用时传入的userid和partyid要在应用的可见范围内;
  126. * </pre>
  127. * @param startTime
  128. * @param endTime
  129. * @param userIds
  130. * @param partyIds
  131. * @return
  132. * @throws WxErrorException
  133. */
  134. WxCpUserExternalUserBehaviorStatistic getUserBehaviorStatistic(Date startTime, Date endTime, String[] userIds, String[] partyIds) throws WxErrorException;
  135. /**
  136. * <pre>
  137. * 获取指定日期全天的统计数据。注意,企业微信仅存储60天的数据。
  138. * 企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?)。
  139. * 暂不支持第三方调用。
  140. * </pre>
  141. * @param startTime
  142. * @param orderBy
  143. * @param orderAsc
  144. * @param pageIndex
  145. * @param pageSize
  146. * @param userIds
  147. * @param partyIds
  148. * @return
  149. * @throws WxErrorException
  150. */
  151. WxCpUserExternalGroupChatStatistic getGroupChatStatistic(Date startTime,Integer orderBy,Integer orderAsc,Integer pageIndex,Integer pageSize, String[] userIds, String[] partyIds) throws WxErrorException;
  152. }