在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → 钉钉的 C#版本SDK

钉钉的 C#版本SDK

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:1.75M
  • 下载次数:64
  • 浏览次数:695
  • 发布时间:2021-09-01
  • 实例类别:C#语言基础
  • 发 布 人:289778005
  • 文件格式:.zip
  • 所需积分:2
 相关标签: sdk C# 钉钉 版本 sd

实例介绍

【实例简介】钉钉的 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());
        }
    }
}

标签: sdk C# 钉钉 版本 sd

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警