日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

企业微信批量根据姓名查找工号

發(fā)布時間:2023/12/15 综合教程 45 生活家
生活随笔 收集整理的這篇文章主要介紹了 企业微信批量根据姓名查找工号 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

公司產(chǎn)品中有一個導入excel發(fā)送消息的功能,客戶習慣了之前的根據(jù)姓名匹配的方式,自從企業(yè)微信屏蔽了姓名之后,這些用戶感覺使用超級不方便,所以嘗試通過批量查找工號方式來匹配。

用戶發(fā)送通知時,先根據(jù)名字查處工號,再根據(jù)工號發(fā)送信息,實際使用中要注意重名、不存在問題處理。

一、 通訊錄批量搜索使用文檔

通訊錄批量搜索
請求方式:POST(HTTPS)
請求地址:https://qyapi.weixin.qq.com/cgi-bin/service/contact/batchsearch?provider_access_token=ACCESS_TOKEN

請求包體:

{
    "auth_corpid":"wwxxxxxx",
    "agentid": 1000046,
    "query_request_list":[
        {
            "query_word": "zhangsan",
            "query_type":1,
            "offset":0,
            "limit":50,
            "full_match_field":1
        }
    ]
}
參數(shù)說明:

參數(shù)	必須	說明
provider_access_token	是	應(yīng)用提供商的provider_access_token,獲取方法參見服務(wù)商的憑證
auth_corpid	是	查詢的企業(yè)corpid
agentid	否	應(yīng)用id,若非0則只返回應(yīng)用可見范圍內(nèi)的用戶或者部門信息
query_request_list	是	搜索請求列表,每次搜索列表數(shù)量不超過50
query_word	是	搜索關(guān)鍵詞。當查詢用戶時應(yīng)為用戶名稱、名稱拼音或者英文名;當查詢部門時應(yīng)為部門名稱或者部門名稱拼音
query_type	否	查詢類型 1:查詢用戶,返回用戶userid列表 2:查詢部門,返回部門id列表。 不填該字段或者填0代表同時查詢部門跟用戶
offset	否	查詢的偏移量,每次調(diào)用的offset在上一次offset基礎(chǔ)上加上limit
limit	否	查詢返回的最大數(shù)量,默認為50,最多為200,查詢返回的數(shù)量可能小于limit指定的值
full_match_field	否	如果需要精確匹配用戶名稱或者部門名稱或者英文名,不填則默認為模糊匹配;1:匹配用戶名稱或者部門名稱 2:匹配用戶英文名
權(quán)限說明:

agentid為0則返回該服務(wù)商授權(quán)通訊錄權(quán)限范圍內(nèi)的用戶信息或者部門信息,否則返回指定agentid應(yīng)用可見范圍內(nèi)的信息

返回結(jié)果:

{
   "errcode": 0,
   "errmsg": "ok",
   "query_result_list":[
    {
            "query_request":
            {
                "query_word": "zhangsan",
                "query_type":1,
                "offset":0,
                "limit":50
            },
            "is_last":false,
            "query_result":{
                "user":{
                    "userid":["zhangshan","lisi"],
                    "open_userid":["wwxxxx","wwxxxa"]
                  },
                "party":{
                    "department_id":[1,2,3]
                  }
            }
        }
   ]
}
參數(shù)說明:

參數(shù)	說明
errcode	返回碼
errmsg	對返回碼的文本描述內(nèi)容
is_last	根據(jù)該字段判斷是否是最后一頁,若為false,開發(fā)者需要使用offset+limit繼續(xù)調(diào)用
query_result_list	搜索結(jié)果列表
query_request	原搜索請求報文
query_result	搜索請求對應(yīng)的查詢結(jié)果
user	返回的用戶信息(通過用戶名稱,拼音匹配)
userid	查詢到的用戶userid
open_userid	查詢到的用戶open_userid
party	返回的部門信息 (通過部門名稱,拼音匹配)
department_id	返回的部門id

 二、封裝C#代碼如下

public class TXLBatchSearchUtil
    {
        //根據(jù)姓名查找工號,返回形成姓名:賬號1,賬號2形式
        public static Dictionary<string,List<string>> SearchUserIdByNames(List<string> names, string agentid,string corpid)
        {
            int batchCount = 50;
            Dictionary<string, List<string>> nameUserIdDict = new Dictionary<string, List<string>>();
            List<string> tempNameList = new List<string>();
            for (int i = 0; i < names.Count; i++)
            {
                tempNameList.Add(names[i]);
                if ((i + 1) % batchCount == 0 || (i + 1) == names.Count)
                {
                    var result= Txl_BatchSearchByWX(tempNameList, 0, 200, 1, agentid,corpid);
                    if (result.errcode==0)
                    {
                        var queryResultList = result.query_result_list;
                        if (queryResultList != null) 
                        {
                            foreach (var item in queryResultList)
                            {
                                if (!nameUserIdDict.ContainsKey(item.query_request.query_word)
                                    && item.query_result.user!= null)
                                {
                                    nameUserIdDict.Add(item.query_request.query_word, item.query_result.user.userid);
                                }

                            }
                        }
                    }
                    
                    tempNameList.Clear();
                }
            }
            return nameUserIdDict;

        }
        //通訊錄中查找
        public static BatchSearchResponse Txl_BatchSearchByWX(List<string> names, int offset, int limit, int type, string agentid,string corpid)
        {
            string token = common.provider_access_token;// your access token
            string url = "https://qyapi.weixin.qq.com/cgi-bin/service/contact/batchsearch?provider_access_token=" + token;
             
            BatchSearchRequest batchSearchRequest = new BatchSearchRequest();
            batchSearchRequest.agentid = agentid;
            batchSearchRequest.auth_corpid =corpid;

            var query_request_list = new List<Query_request_list_single>();
            foreach (var name in names)
            {
                Query_request_list_single query_Request_List_Single = new Query_request_list_single();
                query_Request_List_Single.full_match_field = 1;
                query_Request_List_Single.limit = limit;
                query_Request_List_Single.offset = offset;
                query_Request_List_Single.query_type = type;
                query_Request_List_Single.query_word = name;
                query_request_list.Add(query_Request_List_Single);
            }

            batchSearchRequest.query_request_list = query_request_list;
            string postStr = JsonConvert.SerializeObject(batchSearchRequest);
            string retStr = TXLShowUtil.HttpPostData(url, postStr);
            BatchSearchResponse res = JsonConvert.DeserializeObject<BatchSearchResponse>(retStr);
            return res;
        }

    }
    public class Query_request_list_single
    {
        /// <summary>
        /// 
        /// </summary>
        public string query_word { get; set; }
        /// <summary>
        /// 
        /// </summary> 
        public int query_type { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int offset { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int limit { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int full_match_field { get; set; }
    }

    public class Query_request
    {
        /// <summary>
        /// 
        /// </summary>
        public string query_word { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int query_type { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int offset { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int limit { get; set; }
    }

    public class User
    {
        /// <summary>
        /// 
        /// </summary>
        public List<string> userid { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<string> open_userid { get; set; }
    }

    public class Party
    {
        /// <summary>
        /// 
        /// </summary>
        public List<int> department_id { get; set; }
    }

    public class Query_result
    {
        /// <summary>
        /// 
        /// </summary>
        public User user { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Party party { get; set; }
    }

    public class Query_result_list_single
    {
        /// <summary>
        /// 
        /// </summary>
        public Query_request query_request { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool is_last { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Query_result query_result { get; set; }
    }
    //批量檢索查詢數(shù)據(jù)
    public class BatchSearchRequest
    {
        /// <summary>
        /// 
        /// </summary>
        public string auth_corpid { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int agentid { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<Query_request_list_single> query_request_list { get; set; }
    }
    //批量檢索返回數(shù)據(jù)
    public class BatchSearchResponse
    {
        /// <summary>
        /// 
        /// </summary>
        public int errcode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string errmsg { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<Query_result_list_single> query_result_list { get; set; }
    }

總結(jié)

以上是生活随笔為你收集整理的企业微信批量根据姓名查找工号的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。