钉钉是阿里巴巴专为中小企业和团队打造的沟通、协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案。通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速、低成本的实现高质量的移动微应用,实现生产、管理、协作、运营的移动化。官网的列子往往都是java,php和nodejs的,下面我用c#来实现一个简单的列子,来说明如何与钉钉进行交互:

  1 创建一个网站:

  

其中官网有如何进行账号注册等开发的准备工作,这里不阐述。假设你已经成功申请了企业账号,然后获取了CorpId和CorpSecret。这里我创建一个DDConfig类来保存这两个值.

2 编写DDHelper类

DDHelper类主要为了与钉钉API进行交互,实现Get和Post请求处理,代码如下:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using HttpRequest;
namespace myDDDev
{
public static class DDHelper
{
public static string GetAccessToken(HttpRequest.HttpHelper.HttpResult result)
{ if (result!=null)
{
StreamReader myStreamReader = new StreamReader(result.Result, System.Text.Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd(); M_AccessToken oat = Newtonsoft.Json.JsonConvert.DeserializeObject< M_AccessToken>(retString); if (oat!=null)
{
if(oat.errcode==)
{
return oat.access_token;
}
}
}
return "";
}
public static string GetAccessToken(string url)
{ if (url != "")
{
try
{
HttpRequest.HttpHelper.HttpResult result = HttpRequest.HttpHelper.Get(url);
M_AccessToken oat = Newtonsoft.Json.JsonConvert.DeserializeObject<M_AccessToken>(result.ToStringResult()); if (oat != null)
{
if (oat.errcode == )
{
return oat.access_token;
}
}
}
catch(Exception ex)
{
throw;
}
}
return "";
} public static string CreateDept(string url,string param)
{ if (url != "")
{
try
{
HttpRequest.HttpHelper.HttpResult result = HttpRequest.HttpHelper.Post(url, param, "application/json");
DDResult oat = Newtonsoft.Json.JsonConvert.DeserializeObject<DDResult>(result.ToStringResult()); if (oat != null)
{
if (oat.errcode == )
{
return "";
}
}
}
catch (Exception ex)
{
throw;
}
}
return "";
} }
//{"access_token":"","errcode":0,"errmsg":"ok"}
public class M_AccessToken
{
public string access_token { get; set; }
public int errcode { get; set; } public string errmsg { get; set; } }
public class DDResult
{ public int errcode { get; set; }
public string errmsg { get; set; } }
}

3 创建部门处理

在index.aspx.cs中编写创建部门的逻辑,代码如下:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using HttpRequest;
namespace myDDDev
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
//http://ddtalk.github.io/dingTalkDoc/
//获取AccessToken
//开发者在调用开放平台接口前需要通过CorpID和CorpSecret获取AccessToken。
//获取AccessToken的方法是向 https://oapi.dingtalk.com/gettoken?corpid=id&corpsecret=secrect GET请求。
string getUrl = string.Format("https://oapi.dingtalk.com/gettoken?corpid={0}&corpsecret={1}", DDConfig.__CorpID, DDConfig.__CorpSecret); //access_token 会失效,需要定期获取;
string access_token = DDHelper.GetAccessToken(getUrl); /*
开发者获取AccessToken后便可以调用开放平台其他接口。
以获取部门列表接口为例,获取部门列表接口为:
oapi.dingtalk.com/department/list
在请求该接口时,需要将获取的AccessToken作为请求参数拼装到URL中:
https://oapi.dingtalk.com/department/list?access_token=ACCESS_TOKEN
*/
//添加部门测试
string postUrl = string.Format("https://oapi.dingtalk.com/department/create?access_token={0}", access_token);
string param = "{\"access_token\":\"" + access_token + "\",\"name\":\"后勤部\",\"parentid\":\"1\",\"order\":\"3\",\"createDeptGroup\":\"false\"}";
//HttpRequest.HttpHelper.HttpResult result = HttpRequest.HttpHelper.Post(postUrl, param, "application/json");
//Response.Write(result.ToStringResult());
//code=0 表示创建从成功
string code = DDHelper.CreateDept(postUrl, param);
if(code=="")
{
Response.Write("创建成功");
}
}
catch(Exception ex)
{
Response.Write(ex.Message);
}
}
}
}

4 手机验证

在手机上用钉钉客户端查看是否创建部门成功,如下图所示:

C#如何在钉钉开发平台中创建部门的更多相关文章

  1. Eclipse—怎样为Eclipse开发工具中创建的JavaWebproject创建Servlet

    在博客<在Eclipse中怎样创建JavaWebproject>中图文并茂的说明了Eclipse中创建JavaWebproject的方法,本篇博客将告诉大家怎样为Eclipse开发工具中创 ...

  2. C#如何在钉钉开发平台

    C#如何在钉钉开发平台中创建部门   钉钉是阿里巴巴专为中小企业和团队打造的沟通.协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案.通过钉钉开放平台,企业或第三方合作伙伴可以帮助企 ...

  3. winform快速开发平台 -> 快速绑定ComboBox数据控件

    通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...

  4. phongap、APICloud、ionic等app开发平台你都知道吗?

    大众创业热,很多人都想在互联网大展拳脚,然而大部分人却是非技术背景.针对这个行业痛点,现在国内外涌现出众多APP开发工具,开发者只要有相关的HTML5.CSS和JavaScript知识,便可以轻松快速 ...

  5. HFun.快速开发平台(三)=》通用系统用户选择

    系统中用户的选择使用特别多,将该功能统一实现可提升系统效率. 用户的选择实现相对简单,系统中基本都会提供,HFun.快速开发平台中的实现特点主要有: 1.用户的选择分为单用户选择和多用户选择. 2.用 ...

  6. 快速开发平台 WebBuilder 8.6发布

    WebBuilder下载:http://www.geejing.com/download.html WebBuilder快速开发平台是基于Web面向服务的应用系统开发平台,可以方便快捷的搭建各类型企业 ...

  7. 干货!JNPF快速开发平台功能一览

      JNPF,采用主流的两大技术Java/.Net开发,是一套低代码开发平台,可视化开发环境,有拖拽式的代码生成器,灵活的权限配置.SaaS服务,强大的接口对接,随心可变的工作流引擎,一站式开发多端使 ...

  8. 钉钉、阿里云和PaaS平台的整合开发

    钉钉在企业移动办公领域有着很高的占有率,但是可能大家都会觉得,他在企业定制化,数据分析等领域有着很大的短板. 而我们的kintone作为PaaS平台,可以补足这个短板.很多开发者想知道如何利用钉钉还有 ...

  9. 钉钉开发中post异步调用问题

    最近项目上在做钉钉开发中,经常会遇到使用post方式调用钉钉内部的方法(微信也有一样),这里涉及到跨域的post调用,但跨域一般都是用jsonp格式,而这个格式只支持get方式.尝试了挺多方法都没有返 ...

随机推荐

  1. 为大家分享一个 Ajax Loading —— spin.js

    我们在做Ajax 异步请求的时候,一般都会利用一个动态的 Gif 小图片来制作一个Ajax Loading ,以便增加用户体验. 今天在网上发现了一个 Spin.js ,该 js 脚本压缩后5k,可以 ...

  2. 实现CSS等分布局的4种方式

    × 目录 [1]float [2]inline-block [3]table[4]flex 前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的4种方式 思路一: flo ...

  3. 必应词典3.2去广告备忘笔记(转摘于roustar31)

    下载安装包后,沙盘运行,得到本体BingDict_Setup.msi文件,起作用的就是这个,其他的无视了.使用命令行参数:msiexec /a "d:\BingDict_Setup.msi& ...

  4. Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建

    [注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用 ...

  5. Gradify - 提取图片颜色,创建响应式的 CSS渐变

    被请求的HTTP对象之间的延迟会有一个时间段,这个期间网页看起来不完整.Gradify 可以分析出图像中4个最常见的颜色,创建一个梯度(或纯色)作为图片占位符.Gradify 可以在在任何图像发现最突 ...

  6. tiltShift.js - CSS3 滤镜实现移轴镜头效果

    tiltShift.js 是一款很棒的 jQuery 插件,使用 CSS3 图片滤镜来实现照片的移轴镜头效果.使用非常简单,使用 data 属性配置参数.温馨提示:为保证最佳的效果,请在 IE10+. ...

  7. JQuery 实现页面无刷新

    对于JQuery实现页面无刷新的效果,即:应用这个JQuery这个组件,可以实现在页面上加载数据库中的数据信息,但是并没有给用户页面刷新的感觉,这样既可以有效的进行数据交互,也可以不妨碍用户的其他操作 ...

  8. Android一些关于分辨率和布局的设置

      1.Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢? drawable- hdpi.drawable- mdpi.dra ...

  9. .NET平台下IIS7.5+无后缀名伪静态实现办法

    首先新建一个应用程序池,名称任意,比如:nettest,托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式: 部署好站点,并将此站点的应用程序池设置为nettest; 选中站 ...

  10. Moon.Orm 5.0(MQL版)及之前版本的开源计划

    开源综述:步步开源 Moon.Orm 5.0 (MQL版) 版本维护及下载 (跟踪发布) Moon.Orm 5.0系列文章 Moon.Orm 5.0性能问题,将发言权交给你! 一.5.0目前的情况,步 ...