参考腾讯提供的企业微信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)
{

最低0.47元/天 解锁文章
3113

被折叠的 条评论
为什么被折叠?



