最近在用Lumen开发钉钉企业内部应用,需要调用钉钉的SDK。不得不说,钉钉开发文档写的真是感人,开发的时候那是相当刺激。在使用SDK的时候遇到不少坑,钉钉的文档写的不是很详细,记录下在Laravel中集成DingTalk SDK的方法:

1.首先在http://open-doc.dingtalk.com/microapp/serverapi2/vzzrkv中下载PHP版本SDK。解压后文件目录如图
这里我只用到dingtalk中的文件,删除aliyun、QimenCloud目录,保留top目录Autoloader.php和TopSdk.php文件。

  1. 在composer.json中:

        "autoload": {"classmap": ["database"],"files":["app/Packages/taobao/TopSdk.php"],"psr-4": {"App\\": "app/"}},

    然后执行composer dump-autoload

  2. 执行完毕后,在Controller中就可以直接使用DingTalk SDK了。测试结果如下(注意要加‘ \ ’):
    $c = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI,\DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
    var_dump($c);

    打印出结果如下:

    object(DingTalkClient)#276 (9) { ["gatewayUrl"]=> string(34) "http://eco.taobao.com/router/rest" ["format"]=> string(4) "json" ["connectTimeout"]=> NULL ["readTimeout"]=> NULL ["apiCallType"]=> string(4) "oapi" ["httpMethod"]=> string(4) "POST" ["checkRequest"]=> bool(true) ["apiVersion":protected]=> string(3) "2.0" ["sdkVersion":protected]=> string(25) "dingtalk-sdk-php-20161214" }

遇到的坑:

  1. 在调用DingTalkClient的execute方法获取token的时候,报错如下:

    Missing argument 7 for DingTalkClient::_executeOapi(), called in /Web/proj/app/Packages/taobao/dingtalk/DingTalkClient.php on line 328 and defined
    

    查看DingTalkClient.php文件,328行

     public function execute($request, $session = null,$bestUrl = null){if(DingTalkConstant::$CALL_TYPE_OAPI == $this->apiCallType){return $this->_executeOapi($request, $session, $bestUrl, null, null, null); }else{return $this->_execute($request, $session, $bestUrl);}
    }

    查看_executeOapi方法的代码:

    private function _executeOapi($request, $session = null,$bestUrl = null,$accessKey, $accessSecret, $suiteTicket, $corpId)

    此处发现_executeOapi方法需要传7个参数,而在execute中只传了6个参数。修改后的代码如下:

      public function execute($request, $session = null,$bestUrl = null){if(DingTalkConstant::$CALL_TYPE_OAPI == $this->apiCallType){return $this->_executeOapi($request, $session, $bestUrl, null ,null, null, null);}else{return $this->_execute($request, $session, $bestUrl);}
    }

在Lumen中引入钉钉SDK相关推荐

  1. Java中对接钉钉API获取数据流程

    场景 需要做后台管理系统,接入钉钉API获取人员.考勤.审批等相关数据. 实现 钉钉开放平台应用开发文档 https://developers.dingtalk.com/document/app 首先 ...

  2. java集成钉钉sdk_JAVA maven项目使用钉钉SDK获取token、用户

    本文介绍了JAVA maven项目使用钉钉SDK获取token.用户,分享给大家,具体如下: 将SDK放一个文件里,记住文件地址.D:\eclipse-workspace\项目名\模块名\lib wi ...

  3. 钉钉服务器端SDK PHP版

    项目地址: https://github.com/web3d/DingtalkSDK.git 钉钉官方有些简单的demo,但封装得有些粗糙. 开发的过程中,做了一个有点小意思的工具:json数据转换为 ...

  4. java 钉钉获取用户信息,JAVA maven项目如何使用钉钉SDK来获取token、用户

    JAVA maven项目如何使用钉钉SDK来获取token.用户 发布时间:2020-07-17 10:52:32 来源:亿速云 阅读:102 作者:小猪 这篇文章主要为大家展示了JAVA maven ...

  5. java获取钉钉登录信息,JAVA maven项目使用钉钉SDK获取token、用户

    本文介绍了JAVA maven项目使用钉钉SDK获取token.用户,分享给大家,具体如下: 将SDK放一个文件里,记住文件地址.D:eclipse-workspace项目名模块名lib win+r ...

  6. 钉钉中添加回调监听事件

    此类是HttpRequest.java -------------------------------------------------------------------------------- ...

  7. python项目对接钉钉SDK

    钉钉SDK 对接sdk还是遇到不少问题的 文章目录 钉钉SDK 一. 第三方web网站扫码登录 1. 流程 二. 加解密 1.注册事件 三. 调试 钉钉python版SDK文档地址: https:// ...

  8. 钉钉小程序引入colorUI

    colorUI 源码地址: https://github.com/weilanwl/ColorUI/ 将源码放入小程序文件中,只需要 css 的文件包即可,如果下载下的文件是 .css 文件后缀名,直 ...

  9. 钉钉开发系列(九)SaltUI在VS中的开发

    钉钉提供了SaltUI的组件,以利于界面的开发.SaltUI是基于React实现的,所以调用方式与React是一致的.具体的安装过程可以参照官方的说明文档.SaltUI基于React实现,在安装是基于 ...

最新文章

  1. 学生用计算机2ndf,手机计算器2ndf键在哪 等同于INV键
  2. php中函数的定义格式,在php中函数定义的格式
  3. python录制视频和声音_【Python记 #2】有声录屏
  4. 01_Weblogic课程之概念篇:代理服务器,web服务器,应用程序服务器,JNDI概念,JTA概念,Java消息服务,Java验证和授权(JAAS),Java管理扩展,Web客户机,客户机应用程序
  5. 条款6:若不想使用编译器自动生成的函数,就该明确拒绝
  6. dataframe 排序_疯狂Spark之DataFrame创建方式详解一(九)
  7. STM32的EXTI相关学习笔记
  8. html 网页整体的背景色,HTML 背景
  9. arm 基于qcamera实现_基于Arm平台的研华EPC—R4680工控机实现快速储物柜智能解决方案...
  10. Egret + P2物理引擎入门教程
  11. opencv 之 颜色通道提取
  12. 中学关于计算机方面的课题研究,《多媒体信息技术与初中生物教学的整合》课题研究方案...
  13. 条形码生成软件如何批量生成ISBN条码
  14. 十分钟掌握折半查找法,
  15. 关于给手机拍照出现斜条纹的问题
  16. 基于JAVA汽车出租平台计算机毕业设计源码+数据库+lw文档+系统+部署
  17. donet datatable的代码输入
  18. 怎样防止苹果系统更新_苹果手机屏蔽系统更新描述文件链接,可屏蔽ios12更新...
  19. DSP应用技术(第二章)
  20. 国外的站长如何做SEO优化?

热门文章

  1. 【实验楼】python简明教程
  2. 2022-2028年中国氢化环氧树脂产业发展动态及投资趋势预测报告
  3. jquery autocomplete demo
  4. TensorRT简介
  5. Python __dict__属性详解
  6. 使用Auto TensorCore CodeGen优化Matmul
  7. Mybatis的各种查询功能
  8. 客快物流大数据项目(五十四):初始化Spark流式计算程序
  9. 在Lumen中引入钉钉SDK
  10. [JavaScript] 探索JS中的函数秘密