Procházet zdrojové kódy

:new: #2981 【企业微信】增加根据邮箱获取用户Userid的接口方法

ID_Wangqiang před 2 roky
rodič
revize
22a29c51c0

+ 17 - 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java

@@ -175,6 +175,23 @@ public interface WxCpUserService {
   String getUserId(String mobile) throws WxErrorException;
 
   /**
+   * <pre>
+   *
+   * 通过邮箱获取其所对应的userid。
+   *
+   * 请求方式:POST(HTTPS)
+   * 请求地址:https://qyapi.weixin.qq.com/cgi-bin/user/get_userid_by_email?access_token=ACCESS_TOKEN
+   *
+   * 文档地址:https://developer.work.weixin.qq.com/document/path/95895
+   * </pre>
+   *
+   * @param email 手机号码。长度为5~32个字节
+   * @return userid email对应的成员userid
+   * @throws WxErrorException .
+   */
+  String getUserIdByEmail(String email,int emailType) throws WxErrorException;
+
+  /**
    * 获取外部联系人详情.
    * <pre>
    *   企业可通过此接口,根据外部联系人的userid,拉取外部联系人详情。权限说明:

+ 11 - 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java

@@ -204,6 +204,17 @@ public class WxCpUserServiceImpl implements WxCpUserService {
   }
 
   @Override
+  public String getUserIdByEmail(String email, int emailType) throws WxErrorException {
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("email", email);
+    jsonObject.addProperty("email_type", emailType);
+    String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_USER_ID_BY_EMAIL);
+    String responseContent = this.mainService.post(url, jsonObject.toString());
+    JsonObject tmpJson = GsonParser.parse(responseContent);
+    return tmpJson.get("userid").getAsString();
+  }
+
+  @Override
   public WxCpExternalContactInfo getExternalContact(String userId) throws WxErrorException {
     String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_EXTERNAL_CONTACT + userId);
     String responseContent = this.mainService.get(url, null);

+ 4 - 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java

@@ -966,6 +966,10 @@ public interface WxCpApiPathConsts {
      */
     String GET_USER_ID = "/cgi-bin/user/getuserid";
     /**
+     * The constant GET_USER_ID_BY_EMAIL.
+     */
+    String GET_USER_ID_BY_EMAIL = "/cgi-bin/user/get_userid_by_email";
+    /**
      * The constant GET_EXTERNAL_CONTACT.
      */
     String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid=";

+ 12 - 0
weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImplTest.java

@@ -179,6 +179,18 @@ public class WxCpUserServiceImplTest {
   }
 
   /**
+   * Test get user id by email.
+   *
+   * @throws WxErrorException the wx error exception
+   */
+  @Test
+  public void testGetUserIdByEmail() throws WxErrorException {
+    String result = this.wxCpService.getUserService().getUserIdByEmail("xxx",1);
+    System.out.println(result);
+    assertNotNull(result);
+  }
+
+  /**
    * Test get external contact.
    */
   @Test