/*

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获取钉钉考勤信息源代码相关推荐

  1. Python3 获取钉钉OA审批数据

    根据钉钉最新的开发文档,使用python实现的获取钉钉OA审批数据内容的连接器. 使用条件: 1.创建一个钉钉应用,复制app key与app secret(在应用信息->应用凭证中). 2.赋 ...

  2. 钉钉企业内部应用获取登录用户信息

    1.创建企业内部应用 首先在钉钉开放平台注册企业内部应用. 选择[企业内部开发] 创建H5微应用 填写相关信息 企业内部H5微应用创建完成 2.接口开发前准备 开发前必读 了解不同应用所能支持的能力 ...

  3. 钉钉企业内部应用 - 获取考勤打卡结果

    本文是根据钉钉官方文档归纳所出,最后有 PHP 测试成功的 demo. 概述 钉钉登录是基于 OAuth2.0 协议标准构建的钉钉 OAuth2.0 授权登录系统. 在进行钉钉 OAuth2.0 授权 ...

  4. Jenkins + 蒲公英 + 钉钉,构建Android APP自动上传获取对应下载二维码加钉钉群通知推送.

    感觉都好久没写博客了. 最近这小半年自己都不知道忙啥去了,各种乱七八糟的杂事. 今天刚好将迭代的项目从老的环境迁移到专门的Jenkins服务器里面,就加个班写个这个吧. 当初最早为了弄这个,可是没有少 ...

  5. 钉钉OA审批事件回调遇坑梳理-如何注册多个事件回调

    项目场景: 问题:使用钉钉http调用事件回调注册,遇坑 本项目有两套服务. 当 600 服务,在使用钉钉注册回调的接口后,再次注册800回调服务,800 回调会覆盖掉600服务 测试服务 600 正 ...

  6. 【场景化解决方案】钉钉财务审批同步金蝶云星空

    场景简介 集简云与钉钉深度融合,通过钉钉OA审批数据与金蝶云星空(例如组织架构.物料等)关系映射,自动将钉钉单据数据同步到金蝶云星空系统并自动生成财务单据,让企业应用软件通过完全界面化无代码的操作方式 ...

  7. 用友NC57移动审批、可集成钉钉和企业微信

    用友NC57移动审批.支持集成钉钉和企业微信等任何APP,适用于用友NC57,NC65,NCC 效果图如下:以集成钉钉为例      支持审批NC所有类型单据. 支持微信直接打开,不需要安装APP. ...

  8. 钉钉OA审批可以设计项目施工管理和工程项目管理吗?

    ​钉钉OA审批可以设计项目施工管理和工程项目管理吗?如何用钉钉OA审批搭建部署工程施工类型项目管理的?钉钉免费的应用可以完成工程项目管理的应用需求吗,如何用最低的成本处理工程施工项目管理的应用? 大家 ...

  9. 钉钉微应用怎么进入_钉钉微应用开发免登流程

    公司将办公协同基本上都搬到钉钉线上来了,偶有部门个性的功能,钉钉没有合适的应用可以解决,所以只能自己开发系统解决.钉钉企业内部应用分E应用和微应用,E应用说白了就是小程序,微应用是H5页面.如果公司内 ...

最新文章

  1. 【STM32】PWM程序
  2. 类的加载过程一:Loading
  3. python高级语法-套接字编程之UDP和TCP编程
  4. 通过libusb操作usb设备扫描二维码
  5. Windows下VTK6.0.0安装详解(CMake使用说明)
  6. 十二省联考2019游记
  7. Android实用代码七段(二)
  8. 科学发明家特斯拉传记
  9. 小白入门该如何学习PR视频剪辑软件及辅助工具的使用呢?
  10. QTableView自定义拖拽行
  11. linux修改dns教程,修改Centos的DNS地址
  12. 408操作系统考研笔记!超级详细!23最新考纲
  13. 批量修改文件名,图文教学,2分钟简单学会
  14. 边城小猿——某二线城程序员15年的工作经历
  15. 数据分析入门学习指南,零基础小白都能轻松看懂
  16. 敏捷开发项目管理流程
  17. 计算机三级网络技术(补充)
  18. django 1.11.6—— Celery
  19. 51Openlab上Mininet快速入门
  20. 联通3g上网卡 linux驱动,驱动天空 - 网络设备 - 联通3G上网卡WCDMA

热门文章

  1. (转)程序员键盘推荐
  2. [渝粤教育] 西南科技大学 英语泛读 在线考试复习资料
  3. android hook 第三方app_【MiSRC】技术分享-浅谈android hook技术
  4. 不容忽视的细节——线面积分中的奇点
  5. elasticSearch(二)springboot与es的整合
  6. 北京城建:建筑业龙头的数字化修炼之路
  7. 嵌入式Linux设备驱动程序开发指南17(IIO子系统一)——读书笔记
  8. 模型思维-THE MODEL THINKER
  9. 积分(Integral)
  10. python计算矩阵行列式_基础 | Python 下的行列式值