实例介绍
【实例简介】钉钉的 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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论