实例介绍
【实例简介】钉钉的 C#版本SDK , 根据大神一介草民的版本完善。
【核心代码】
using DingDingSDK; using DingDingSDK.auth; using DingDingSDK.department; using DingDingSDK.media; using DingDingSDK.message; using DingDingSDK.user; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace DingDingDemo { class Program { static void Main(string[] args) { try { //请改写你的配置 Vars.AGENT_ID = ""; Env.CORP_ID = ""; Env.SECRET = ""; Env.CREATE_SUITE_KEY = ""; Env.SUITE_KEY = ""; Env.SUITE_SECRET = ""; Env.TOKEN = ""; Env.ENCODING_AES_KEY = ""; // 获取access token string accessToken = AuthHelper.getAccessToken(); log("成功获取access token: ", accessToken); MessageBox.Show(accessToken); Console.ReadKey(); // 获取jsapi ticket String ticket = AuthHelper.getJsapiTicket(accessToken); log("成功获取jsapi ticket: ", ticket); // 获取签名 String nonceStr = "nonceStr"; long timeStamp = Convert.ToInt64(DateTime.Now.Subtract(DateTime.Parse("1970-1-1")).TotalMilliseconds);//System.currentTimeMillis(); String url = "http://www.dingtalk.com"; String signature = AuthHelper.sign(ticket, nonceStr, timeStamp, url); log("成功签名: ", signature); //获取部门列表 List<Department> list = DepartmentHelper.listDepartments(accessToken); log("成功获取部门列表", list); //创建部门 String name = "TestDept.16"; String parentId = "1"; String order = "1"; var depttmp = list.Find(dp => dp.name == name); if (depttmp != null) { DepartmentHelper.deleteDepartment(accessToken, long.Parse(depttmp.id)); } long departmentId = DepartmentHelper.createDepartment(accessToken, name, parentId, order); log("成功创建部门", name, " 部门id=", departmentId); //更新部门 DepartmentHelper.updateDepartment(accessToken, name, parentId, order, departmentId); log("成功更新部门", " 部门id=", departmentId); var usrlist=UserHelper.getDepartmentUser(accessToken, departmentId); var userf = usrlist.Find(usr => usr.userid == "id_yuhuan"); if (userf!=null ) { UserHelper.deleteUser(accessToken, userf.userid); log("用户删除成功", name, " 用户ID=", userf.userid); } //创建成员 User user = new User("id_yuhuan", "name_yuhuan"); user.email = "yuhuan@abc.com"; user.mobile = "18645512324"; user.department = new List<long>(); user.department.Add(departmentId); UserHelper.createUser(accessToken, user); log("成功创建成员", "成员信息=", user); //上传图片 FileInfo file = new FileInfo("1111.PNG"); MediaHelper.MediaUploadResult uploadResult = MediaHelper.upload(accessToken, MediaHelper.TYPE_IMAGE, file); log("成功上传图片", uploadResult); //下载图片 String fileDir = "1111.PNG"; MediaHelper.download(accessToken, uploadResult.media_id, fileDir); log("成功下载图片"); TextMessage textMessage = new TextMessage("TextMessage"); ImageMessage imageMessage = new ImageMessage(uploadResult.media_id); LinkMessage linkMessage = new LinkMessage("http://www.baidu.com", "@lALOACZwe2Rk", "Link Message", "This is a link message"); //创建oa消息 OAMessage oaMessage = new OAMessage { message_url = "http://www.dingtalk.com" }; OAMessage.Head head = new OAMessage.Head(); head.bgcolor = "FFCC0000"; oaMessage.head = head; OAMessage.Body body = new OAMessage.Body(); body.title = "征婚启事"; OAMessage.Body.Form form1 = new OAMessage.Body.Form(); form1.key = "姓名"; form1.value = "刘增产"; OAMessage.Body.Form form2 = new OAMessage.Body.Form(); form2.key = "年龄"; form2.value = "18"; body.form = new List<OAMessage.Body.Form>(); body.form.Add(form1); body.form.Add(form2); OAMessage.Body.Rich rich = new OAMessage.Body.Rich(); rich.num = "5"; rich.unit = "毛"; body.rich = rich; body.content = "这是一则严肃的征婚启事。不约。"; body.image = ""; body.file_found = "3"; body.author = "识器"; oaMessage.body = body; //发送微应用消息 String toUsers = Vars.TO_USER; String toParties = ""; // Vars.TO_PARTY; String agentId = Vars.AGENT_ID; foreach (var item in list) { toParties = item.id "|"; } LightAppMessageDelivery lightAppMessageDelivery = new LightAppMessageDelivery(toUsers, toParties, agentId); lightAppMessageDelivery.withMessage(textMessage); MessageHelper.send(accessToken, lightAppMessageDelivery); log("成功发送 微应用文本消息"); lightAppMessageDelivery.withMessage(imageMessage); MessageHelper.send(accessToken, lightAppMessageDelivery); log("成功发送 微应用图片消息"); lightAppMessageDelivery.withMessage(linkMessage); MessageHelper.send(accessToken, lightAppMessageDelivery); log("成功发送 微应用link消息"); lightAppMessageDelivery.withMessage(oaMessage); MessageHelper.send(accessToken, lightAppMessageDelivery); log("成功发送 微应用oa消息"); //发送会话消息 String sender = Vars.SENDER; String cid = Vars.CID; ConversationMessageDelivery conversationMessageDelivery = new ConversationMessageDelivery(sender, cid, agentId); conversationMessageDelivery.withMessage(textMessage); MessageHelper.send(accessToken, conversationMessageDelivery); log("成功发送 会话文本消息"); conversationMessageDelivery.withMessage(imageMessage); MessageHelper.send(accessToken, conversationMessageDelivery); log("成功发送 会话图片消息"); conversationMessageDelivery.withMessage(linkMessage); MessageHelper.send(accessToken, conversationMessageDelivery); log("成功发送 会话link消息"); //更新成员 user.mobile = "18612341234"; UserHelper.updateUser(accessToken, user); log("成功更新成员", "成员信息=", user); //获取成员 UserHelper.getUser(accessToken, user.userid); log("成功获取成员", "成员userid=", user.userid); //获取部门成员 List<User> userList = UserHelper.getDepartmentUser(accessToken, departmentId); log("成功获取部门成员", "部门成员user=", userList); //获取部门成员(详情) List<User> userList2 = UserHelper.getUserDetails(accessToken, departmentId); log("成功获取部门成员详情", "部门成员详情user=", userList2); //批量删除成员 User user2 = new User("id_yuhuan2", "name_yuhuan2"); user2.email = "yuhua2n@abc.com"; user2.mobile = "18611111111"; user2.department = new List<long>(); user2.department.Add(departmentId); UserHelper.createUser(accessToken, user2); List<String> useridlist = new List<String>(); useridlist.Add(user.userid); useridlist.Add(user2.userid); UserHelper.batchDeleteUser(accessToken, useridlist); log("成功批量删除成员", "成员列表useridlist=", useridlist); //删除成员 User user3 = new User("id_yuhuan3", "name_yuhuan3"); user3.email = "yuhua2n@abc.com"; user3.mobile = "18611111111"; user3.department = new List<long>(); user3.department.Add(departmentId); UserHelper.createUser(accessToken, user3); UserHelper.deleteUser(accessToken, user3.userid); log("成功删除成员", "成员userid=", user3.userid); //删除部门 DepartmentHelper.deleteDepartment(accessToken, departmentId); log("成功删除部门", " 部门id=", departmentId); Console.ReadKey(); } catch (OApiException e) { e.printStackTrace(); } } private static void log(params Object[] msgs) { LogHelper.AddLog(string.Join("\r\n________\r\n", msgs.Select(x => x.ToString()).ToList()), typeof(Program)); StringBuilder sb = new StringBuilder(); foreach (var item in msgs) { sb.Append(sb); } Console.WriteLine(sb.ToString()); } } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论