Exemple #1
0
        /// <summary>
        /// 如果需要用户的详细信息,则需要建立一个企业内部应用,并将AppKey和AppSecret传递到Config参数中DingCorpAppKey和DingCorpAppSecret
        /// 如果扫描的用户不是企业的员工,则能拿到unionID,但是无法获取userid
        /// </summary>
        /// <returns></returns>
        private DingdingUserInfoEntity GetUserInfoByCorp()
        {
            var url    = $"{Corp_AccessToken_Url}?appkey={param.DingCorpAppKey}&appsecret={param.DingCorpAppSecret}";
            var result = HttpUtil.Get(url);
            DingdingAccessTokenEntity corp_accToken = JsonConvert.DeserializeObject <DingdingAccessTokenEntity>(result);

            if (corp_accToken == null || corp_accToken.errcode != "0")
            {
                throw new Exception("获取企业应用Token 出错");
            }

            url = $"{Userid_Url}?access_token={corp_accToken.access_token}";
            var data = "{\"unionid\": \"" + _persistentCode.unionid + "\"}";

            result = HttpUtil.Post(data, url, contentType: "application/json");
            DingdingUseridEntity dingdingPersistentCodeEntity = JsonConvert.DeserializeObject <DingdingUseridEntity>(result);

            if (dingdingPersistentCodeEntity == null || dingdingPersistentCodeEntity.errcode != "0")
            {
                throw new Exception("获取不到用户具体userid信息");
            }

            url    = $"{UserInfo_Url}?access_token={corp_accToken.access_token}";
            data   = "{\"userid\": \"" + dingdingPersistentCodeEntity.result.userid + "\"}";
            result = HttpUtil.Post(data, url, contentType: "application/json");

            DingdingUserInfoEntity dingding_Userinfo = JsonConvert.DeserializeObject <DingdingUserInfoEntity>(result);

            if (dingding_Userinfo == null)
            {
                throw new Exception("获取不到用户信息获取失败");
            }
            return(dingding_Userinfo);
        }
Exemple #2
0
        private DingdingAccessTokenEntity GetAccessToken()
        {
            var url    = $"{AccessToken_Url}?appid={param.appid}&appsecret={param.appsecret}";
            var result = HttpUtil.Get(url);
            DingdingAccessTokenEntity dingding_AccessToken = JsonConvert.DeserializeObject <DingdingAccessTokenEntity>(result);

            if (dingding_AccessToken == null || dingding_AccessToken.errcode != "0")
            {
                throw new Exception("获取钉钉 ACCESS_TOKEN 出错");
            }
            return(dingding_AccessToken);
        }