/*

*发送工作通知消息

*/

router.post('/api/dingtalkserve/asyncsend_v2', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['userid_list'] && !body['dept_id_list'] && !body['to_all_user']) {

return response.fail({

'msg': "userid_list,dept_id_list, to_all_user必须有一个不能为空"

});

}

if (!body['msg']) {

return response.fail({

'msg': "msg不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

agent_id: parseInt(agentId4EP),

msg: {

"msgtype": "text",

"text": {

"content": body['msg']

}

}

};

body['to_all_user'] ? params['to_all_user'] = true : false;

body['dept_id_list'] ? params['dept_id_list'] = body['dept_id_list'] : "";

body['userid_list'] ? params['userid_list'] = body['userid_list'] : "";

let messageRes = await request(`${host}topapi/message/corpconversation/asyncsend_v2?access_token=${accessToken}`, 'POST', params);

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取工作通知消息的发送进度

*/

router.post('/api/dingtalkserve/getsendprogress', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['task_id']) {

return response.fail({

'msg': "task_id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

agent_id: parseInt(agentId4EP),

task_id: body['task_id']

};

let messageRes = await request(`${host}topapi/message/corpconversation/getsendprogress?access_token=${accessToken}`, 'POST', params);

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取工作通知消息的发送结果

*/

router.post('/api/dingtalkserve/getsendresult', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['task_id']) {

return response.fail({

'msg': "task_id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

agent_id: parseInt(agentId4EP),

task_id: body['task_id']

};

let messageRes = await request(`${host}topapi/message/corpconversation/getsendresult?access_token=${accessToken}`, 'POST', params);

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取子部门ID列表

*/

router.post('/api/dingtalkserve/list_ids', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['id']) {

return response.fail({

'msg': "父部门id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

id: body['id']

};

let messageRes = await request(`${host}department/list_ids`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取部门列表

*/

router.post('/api/dingtalkserve/list', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['id']) {

return response.fail({

'msg': "父部门id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

id: body['id']

};

body['lang'] ? params['lang'] = body['lang'] : "";

body['fetch_child'] ? params['fetch_child'] = true : false;

let messageRes = await request(`${host}department/list`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取部门详情

*/

router.post('/api/dingtalkserve/departmentget', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['id']) {

return response.fail({

'msg': "部门id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

id: body['id']

};

body['lang'] ? params['lang'] = body['lang'] : "";

let messageRes = await request(`${host}department/get`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 查询部门的所有上级父部门路径

*/

router.post('/api/dingtalkserve/list_parent_depts_by_dept', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['id']) {

return response.fail({

'msg': "部门id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

id: body['id']

};

let messageRes = await request(`${host}department/list_parent_depts_by_dept`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 查询指定用户的所有上级父部门路径

*/

router.post('/api/dingtalkserve/list_parent_depts', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['userId']) {

return response.fail({

'msg': "用户id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

userId: body['userId']

};

let messageRes = await request(`${host}department/list_parent_depts`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取企业员工人数

*/

router.post('/api/dingtalkserve/get_org_user_count', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['onlyActive']) {

return response.fail({

'msg': "激活钉钉状态不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

onlyActive: body['onlyActive']

};

let messageRes = await request(`${host}user/get_org_user_count`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取用户详情

*/

router.post('/api/dingtalkserve/userinfo', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['userid']) {

return response.fail({

'msg': "userid不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

userid: body['userid']

};

body['lang'] ? params['lang'] = body['lang'] : "";

let messageRes = await request(`${host}user/get`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取部门用户userid列表

*/

router.post('/api/dingtalkserve/getDeptMember', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['deptId']) {

return response.fail({

'msg': "部门id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

deptId: body['deptId']

};

let messageRes = await request(`${host}user/getDeptMember`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取部门用户(详情)

*/

router.post('/api/dingtalkserve/listbypage', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['department_id']) {

return response.fail({

'msg': "部门id不能为空"

});

}

if (!body['offset']) {

return response.fail({

'msg': "偏移量不能为空"

});

}

if (!body['size']) {

return response.fail({

'msg': "每页数量不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

department_id: body['department_id'],

offset: parseInt(body['offset']),

size: parseInt(body['size'])

};

let messageRes = await request(`${host}user/listbypage`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 根据unionid获取userid

*/

router.post('/api/dingtalkserve/getUseridByUnionid', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['unionid']) {

return response.fail({

'msg': "unionid不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

unionid: body['unionid']

};

let messageRes = await request(`${host}user/getUseridByUnionid`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取通讯录权限范围

*/

router.post('/api/dingtalkserve/authScopes', async ({ request, response, session }) => {

try {

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken

};

let messageRes = await request(`${host}/auth/scopes`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 创建群

*/

router.post('/api/dingtalkserve/createChat', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['name']) {

return response.fail({

'msg': "群名称不能为空"

});

}

if (!body['owner']) {

return response.fail({

'msg': "群主userid不能为空"

});

}

if (!body['useridlist']) {

return response.fail({

'msg': "群成员不能为空"

});

}

if (body['useridlist'].indexOf(body['owner']) < 0) {

return response.fail({

'msg': "群主必须为群成员"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

name: body['name'],

owner: body['owner'],

useridlist: body['useridlist'].split(",")

};

let messageRes = await request(`${host}chat/create?access_token=${accessToken}`, 'POST', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 获取群聊会话信息

*/

router.post('/api/dingtalkserve/chatInfo', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['chatid']) {

return response.fail({

'msg': "群id不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

chatid: body['chatid']

};

let messageRes = await request(`${host}chat/get`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 发送群消息

*/

router.post('/api/dingtalkserve/chatSend', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['chatid']) {

return response.fail({

'msg': "群id不能为空"

});

}

if (!body['msg']) {

return response.fail({

'msg': "群消息不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

chatid: body['chatid'],

msg: {

"msgtype": "text",

"text": {

"content": body['msg']

}

}

};

let messageRes = await request(`${host}chat/send?access_token=${accessToken}`, 'POST', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

/*

* 查询群消息已读人员列表

*/

router.post('/api/dingtalkserve/getReadList', async ({ request, response, session }) => {

try {

let body = request.fields;

if (!body['messageId']) {

return response.fail({

'msg': "messageId不能为空"

});

}

if (!body['cursor']) {

return response.fail({

'msg': "cursor不能为空"

});

}

if (!body['size']) {

return response.fail({

'msg': "每页数量不能为空"

});

}

// 获取TOKEN

let accessToken = await getAccessToken();

let params = {

access_token: accessToken,

messageId: body['messageId'],

cursor: body['cursor'],

size: parseInt(body['size']),

};

let messageRes = await request(`${host}chat/getReadList`, 'GET', params);

console.log("messageRes", messageRes)

return response.success({ 'data': messageRes });

} catch (e) {

console.log(e);

return response.fail({

'msg': e

});

}

});

不合法的偏移量 钉钉接口_钉钉服务端api接口使用相关推荐

  1. 魔方APP项目-01-移动端开发相关概念、移动端自适配、元信息(meta)、开发准备、移动端项目搭建(模拟器调试)、APICloud(APICloud 前端框架,获取服务端API接口)

    一.移动端开发相关概念 1.APP类型 ①.Native APP Native APP又称原生APP,就是我们平时说的手机应用软件. 原生APP 是针对IOS.Android.Windows等不同的手 ...

  2. delphi 调用php接口_新浪图床 API 接口调用与请求方法详细教程

    新浪微博图床API在网上已经很多且大都封装成了API供别人调用,这里分享其核心代码.支持前台跨域请求,以POST方式提交图片即可.新浪图床可以将你的图片远程上传到新浪服务器,你可以选择调用本站的接口, ...

  3. delphi 调用php接口_爱站权重查询 API 接口请求调用

    爱站权重查询 API 接口在网上已经很多且大都封装成了 API 供别人调用.支持前台跨域请求,以GET/POST方式提交即可.爱站权重查询 API 接口可以查询百度权重.搜狗等级.360权重.神马权重 ...

  4. java 朋友圈分享接口_微信发朋友圈api接口调用代码

    微信发朋友圈api接口调用代码,推送微信朋友圈.发朋友圈 /** * 触发推送朋友圈列表 * @author wechatno:tangjinjinwx * startTime传秒 * @blog h ...

  5. wordpress 外部数据接口_在WordPress中开发API接口

    相信很多朋友都有在wordpress中开发API接口的需求 其实wordpress中进行API开发也不是有多大的难度.不过我走了很多弯路,所以在这里写下方法,以免更多人再走这条弯路. 在刚接到开发wo ...

  6. 上传图片-服务端-Api接口定义

    API接口 模型类 系统的文件信息(图片.文档等小文件的信息)在mongodb中存储,下边是文件信息的模型类. 1) 模型如下: package com.learn.framework.domain. ...

  7. Android客户端与PHP服务端API接口Token安全验证

    Android客户端: 1.写一个生成token的算法 /*** 生成api接口的token* @param map* @param apikey* @return*/public static St ...

  8. 图片开放接口_免费的美女图片API接口

    为什么80%的码农都做不了架构师?>>>    天狗开放阅图,是天狗(tngou.net)旗下开发的图片网站,由于所以的数据都来源与网络,所以天狗也想对应的免费开放相关的数据,为移动 ...

  9. uni-app - 九宫格老虎机抽奖机插件源码(支持服务端API接口控制最终中奖的奖品,自定义组件可随意配置和控制,带组件文档轻松 DIY 自己的营销页抽奖机)幸运抽奖圆形大转盘插件组件

    前言 如果您需要圆形大转盘抽奖机(如下图所示),请访问:这篇文章. 关于九宫格式老虎机宫格跳动抽奖,网上的大部分源码非常乱且无注释,根本无法改造, 本文提供的组件源码,代码干净整洁注释详细,并且配备超 ...

最新文章

  1. SQL中返回一个字符串在另一个中存在的次数
  2. 【spring】第二个springmvc helloworld 以及 spring模糊路径
  3. 寒冰王座(DGA最长路/完全背包)
  4. html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图
  5. 尤克里里怎么样_尤克里里和吉他区别?尤克里里与吉他相比有什么不可替代的优势...
  6. 雷军自曝25年前旧照 网友发现端倪:25年前就有MIX 2S了?
  7. 奇安信代码安全实验室帮助微软修复多个高危漏洞,获官方致谢
  8. 如何利用迅雷下载百度云获取实际下载地址
  9. EdrawMax Crack,跨平台图表软件
  10. eclispe 下载与安装
  11. 微信投票python脚本_微信投票python脚本
  12. Spring源码解析之-doCreateBean() 详解
  13. ps 制作gif动图以及一些问题
  14. HCIA H12-211题库解析
  15. 如果用户没上传头像,则为其设置默认用户头像
  16. Mac Mounty挂载NTFS硬盘报错
  17. BugKu——snowfall的WP
  18. opencv:图像的放大与缩小
  19. MySQL的外网访问配置
  20. 大数据学习01:大数据概述

热门文章

  1. 百度地图api改变覆盖物背景实例及css颜色值简介
  2. 阿里巴巴消息系统架构与变迁--转载
  3. HTTP Referer二三事---转
  4. Understanding JVM Internals---不得不转载呀
  5. 让Elasticsearch飞起来!——性能优化实践干货
  6. 卷积神经网络在自然语言处理的应用
  7. chm 能插入公式吗_批量提取表格名称、插入空列,教你三下五除二秒速完成!...
  8. SpringtBoot+SpringSecurity+Jwt+MyBatis整合实现用户认证以及权限控制
  9. pythonrequests下载大文件_Python3 使用requests模块显示下载大文件显示进度
  10. mysql 修改字段为1-10的随机数