PHP获取钉钉审批,PHP获取钉钉考勤信息源代码
/*
https://open-doc.dingtalk.com/microapp/serverapi2/oek45u 官方开发文档
PHP版本钉钉考勤获取
Author:RainMan
交流QQ:9359951
corpid 和 corpsecret 在 https://open-dev.dingtalk.com/#/devAuthorize 开发授权中获取
*/
function curl_http_request($href, $method = 0, $post_data = null, $cookie = null) {
if (isset($post_data) && is_string($post_data) && strlen($post_data) > 0) $post_fields = $post_data;
else if (isset($post_data) && is_array($post_data) && count($post_data) > 0) $post_fields = http_build_query($post_data, null, '&', PHP_QUERY_RFC3986);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $href);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, $method);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
if (isset($post_fields)) curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
if (isset($cookie)) curl_setopt($ch, CURLOPT_COOKIE, $cookie);
$result = curl_exec($ch);
$curl_info = curl_getinfo($ch);
$info = $curl_info['url'] . '|' . $curl_info['http_code'] . '|' . $curl_info['total_time'];
$header_size = $curl_info['header_size'];
$header = substr($result, 0, $header_size);
$body = substr($result, $header_size);
$success = true;
$uri = $_SERVER["REQUEST_URI"];
if ($curl_info['http_code'] == 0 || $curl_info['http_code'] >= 400) {
$success = false;
}
curl_close($ch);
if ($success) {
return $body;
}
return false;
}
//echo "
输出测试,请耐心等候......";
$urltoken = "https://oapi.dingtalk.com/gettoken?corpid=开发授权中获取&corpsecret=开发授权中获取";
//echo curl_http_request($urltoken)."
";
$access_token = json_decode(curl_http_request($urltoken), true); //获取 access_token
$access_token = $access_token[access_token]; //获取 access_token
$url="https://oapi.dingtalk.com/attendance/listRecord?access_token=".$access_token;
//初始化
$ch = curl_init();
//设置抓取的url
curl_setopt($ch, CURLOPT_URL, $url);
//开启header
curl_setopt($ch, CURLOPT_HEADER, 0);
//类型为json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8'));
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//设置post方式提交
curl_setopt($ch, CURLOPT_POST, 1);
//设置post数据
$post_data = '{"userIds":["manager9202"],"checkDateFrom":"2018-11-20 00:00:00","checkDateTo":"2018-11-26 23:59:59","isI18n":"false"}';
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//执行命令
$output = curl_exec($ch);
//关闭URL请求
curl_close($ch);
//显示获得的数据
echo $output."
";
$out_array = json_decode($output,true);
if($out_array[errcode]==0){
foreach ($out_array["recordresult"] as $DPID){
echo $DPID[userId]." - ".$DPID[checkType]." - ".date("Y-m-d H:i:s",substr($DPID[workDate],0,-3))." - ".date("Y-m-d H:i:s",substr($DPID[userCheckTime],0,-3))."
";
}
}else{
echo "
参数错误 $out_array[errcode] $out_array[errmsg] ";
}
?>
PHP获取钉钉审批,PHP获取钉钉考勤信息源代码相关推荐
- Python3 获取钉钉OA审批数据
根据钉钉最新的开发文档,使用python实现的获取钉钉OA审批数据内容的连接器. 使用条件: 1.创建一个钉钉应用,复制app key与app secret(在应用信息->应用凭证中). 2.赋 ...
- 钉钉企业内部应用获取登录用户信息
1.创建企业内部应用 首先在钉钉开放平台注册企业内部应用. 选择[企业内部开发] 创建H5微应用 填写相关信息 企业内部H5微应用创建完成 2.接口开发前准备 开发前必读 了解不同应用所能支持的能力 ...
- 钉钉企业内部应用 - 获取考勤打卡结果
本文是根据钉钉官方文档归纳所出,最后有 PHP 测试成功的 demo. 概述 钉钉登录是基于 OAuth2.0 协议标准构建的钉钉 OAuth2.0 授权登录系统. 在进行钉钉 OAuth2.0 授权 ...
- Jenkins + 蒲公英 + 钉钉,构建Android APP自动上传获取对应下载二维码加钉钉群通知推送.
感觉都好久没写博客了. 最近这小半年自己都不知道忙啥去了,各种乱七八糟的杂事. 今天刚好将迭代的项目从老的环境迁移到专门的Jenkins服务器里面,就加个班写个这个吧. 当初最早为了弄这个,可是没有少 ...
- 钉钉OA审批事件回调遇坑梳理-如何注册多个事件回调
项目场景: 问题:使用钉钉http调用事件回调注册,遇坑 本项目有两套服务. 当 600 服务,在使用钉钉注册回调的接口后,再次注册800回调服务,800 回调会覆盖掉600服务 测试服务 600 正 ...
- 【场景化解决方案】钉钉财务审批同步金蝶云星空
场景简介 集简云与钉钉深度融合,通过钉钉OA审批数据与金蝶云星空(例如组织架构.物料等)关系映射,自动将钉钉单据数据同步到金蝶云星空系统并自动生成财务单据,让企业应用软件通过完全界面化无代码的操作方式 ...
- 用友NC57移动审批、可集成钉钉和企业微信
用友NC57移动审批.支持集成钉钉和企业微信等任何APP,适用于用友NC57,NC65,NCC 效果图如下:以集成钉钉为例 支持审批NC所有类型单据. 支持微信直接打开,不需要安装APP. ...
- 钉钉OA审批可以设计项目施工管理和工程项目管理吗?
钉钉OA审批可以设计项目施工管理和工程项目管理吗?如何用钉钉OA审批搭建部署工程施工类型项目管理的?钉钉免费的应用可以完成工程项目管理的应用需求吗,如何用最低的成本处理工程施工项目管理的应用? 大家 ...
- 钉钉微应用怎么进入_钉钉微应用开发免登流程
公司将办公协同基本上都搬到钉钉线上来了,偶有部门个性的功能,钉钉没有合适的应用可以解决,所以只能自己开发系统解决.钉钉企业内部应用分E应用和微应用,E应用说白了就是小程序,微应用是H5页面.如果公司内 ...
最新文章
- 【STM32】PWM程序
- 类的加载过程一:Loading
- python高级语法-套接字编程之UDP和TCP编程
- 通过libusb操作usb设备扫描二维码
- Windows下VTK6.0.0安装详解(CMake使用说明)
- 十二省联考2019游记
- Android实用代码七段(二)
- 科学发明家特斯拉传记
- 小白入门该如何学习PR视频剪辑软件及辅助工具的使用呢?
- QTableView自定义拖拽行
- linux修改dns教程,修改Centos的DNS地址
- 408操作系统考研笔记!超级详细!23最新考纲
- 批量修改文件名,图文教学,2分钟简单学会
- 边城小猿——某二线城程序员15年的工作经历
- 数据分析入门学习指南,零基础小白都能轻松看懂
- 敏捷开发项目管理流程
- 计算机三级网络技术(补充)
- django 1.11.6—— Celery
- 51Openlab上Mininet快速入门
- 联通3g上网卡 linux驱动,驱动天空 - 网络设备 - 联通3G上网卡WCDMA
热门文章
- (转)程序员键盘推荐
- [渝粤教育] 西南科技大学 英语泛读 在线考试复习资料
- android hook 第三方app_【MiSRC】技术分享-浅谈android hook技术
- 不容忽视的细节——线面积分中的奇点
- elasticSearch(二)springboot与es的整合
- 北京城建:建筑业龙头的数字化修炼之路
- 嵌入式Linux设备驱动程序开发指南17(IIO子系统一)——读书笔记
- 模型思维-THE MODEL THINKER
- 积分(Integral)
- python计算矩阵行列式_基础 | Python 下的行列式值