asp.net企业微信开发之同步通讯录

参考腾讯提供的企业微信api,得知企业微信在同步通讯录时需要先将部门和人员按照规定格式上传,然后再根据上传后返回的media_id执行部门或者人员的覆盖操作。
话不多说,直接上菜。

  • 同步程序
  public string SyncOrga()
        {
            string result = string.Empty;
            string token = getToken();

            //生成部门csv文件
            string ouCSVFilePath = GetOUCSV();

            // 先将部门文件上传至腾讯服务器
            string url = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=" + token + "&type=file";
            string mediaid = string.Empty;

            //调用接口上传
            string mediaidou = HttpUploadFile(url, ouCSVFilePath);

            JObject resultInfo = JsonConvert.DeserializeObject<JObject>(mediaidou);
            int errcode = Convert.ToInt32(resultInfo["errcode"]);
            if (errcode == 0)
            {
                mediaid = Convert.ToString(resultInfo["media_id"]);
                //把上传反馈的id传入批量操作部门接口
                string replacepartyInfo = ReplacepartyTest(mediaid, token);
                JObject mediaouInfo = JsonConvert.DeserializeObject<JObject>(replacepartyInfo);
                int replacepartyerrcode = Convert.ToInt32(mediaouInfo["errcode"]);
                if (replacepartyerrcode == 0)
                {
                    //获取全量覆盖部门jobid
                    string jobidBM = Convert.ToString(mediaouInfo["jobid"]);
                    string ReturnBMInfo = GetReturnByJobid(token, jobidBM);
                    JObject BMResultInfo = JsonConvert.DeserializeObject<JObject>(ReturnBMInfo);
                    if (Convert.ToInt32(BMResultInfo["errcode"])==0)
                    {
                        BMMsg.Text = Convert.ToString(BMResultInfo["result"]);
                    }
                    else
                    {
                        BMMsg.Text = ReturnBMInfo;

                    }
                    //上传用户文件至腾讯服务器
                    string userCSVFilePath = GetUserCSV();

                    string mediaiduser = HttpUploadFile(url, userCSVFilePath);
                    JObject resultUserInfo = JsonConvert.DeserializeObject<JObject>(mediaiduser);
                    int mediaiduserErrCode = Convert.ToInt32(resultUserInfo["errcode"]);
                    if (mediaiduserErrCode == 0)
                    {
                        string userMediaId = Convert.ToString(resultUserInfo["media_id"]);
                        //把上传反馈的id传入批量操作部门接口
                        string replaceuserInfo = ReplaceUser(userMediaId, token);
                        JObject mediaiduserInfo = JsonConvert.DeserializeObject<JObject>(replaceuserInfo);
                        int UserErrorCode = Convert.ToInt32(mediaiduserInfo["errcode"]);
                        if (UserErrorCode == 0)
                        {
               
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值