在Lumen中引入钉钉SDK
最近在用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文件。
- 在composer.json中:
"autoload": {"classmap": ["database"],"files":["app/Packages/taobao/TopSdk.php"],"psr-4": {"App\\": "app/"}},
然后执行composer dump-autoload
- 执行完毕后,在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" }
遇到的坑:
- 在调用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相关推荐
- Java中对接钉钉API获取数据流程
场景 需要做后台管理系统,接入钉钉API获取人员.考勤.审批等相关数据. 实现 钉钉开放平台应用开发文档 https://developers.dingtalk.com/document/app 首先 ...
- java集成钉钉sdk_JAVA maven项目使用钉钉SDK获取token、用户
本文介绍了JAVA maven项目使用钉钉SDK获取token.用户,分享给大家,具体如下: 将SDK放一个文件里,记住文件地址.D:\eclipse-workspace\项目名\模块名\lib wi ...
- 钉钉服务器端SDK PHP版
项目地址: https://github.com/web3d/DingtalkSDK.git 钉钉官方有些简单的demo,但封装得有些粗糙. 开发的过程中,做了一个有点小意思的工具:json数据转换为 ...
- java 钉钉获取用户信息,JAVA maven项目如何使用钉钉SDK来获取token、用户
JAVA maven项目如何使用钉钉SDK来获取token.用户 发布时间:2020-07-17 10:52:32 来源:亿速云 阅读:102 作者:小猪 这篇文章主要为大家展示了JAVA maven ...
- java获取钉钉登录信息,JAVA maven项目使用钉钉SDK获取token、用户
本文介绍了JAVA maven项目使用钉钉SDK获取token.用户,分享给大家,具体如下: 将SDK放一个文件里,记住文件地址.D:eclipse-workspace项目名模块名lib win+r ...
- 钉钉中添加回调监听事件
此类是HttpRequest.java -------------------------------------------------------------------------------- ...
- python项目对接钉钉SDK
钉钉SDK 对接sdk还是遇到不少问题的 文章目录 钉钉SDK 一. 第三方web网站扫码登录 1. 流程 二. 加解密 1.注册事件 三. 调试 钉钉python版SDK文档地址: https:// ...
- 钉钉小程序引入colorUI
colorUI 源码地址: https://github.com/weilanwl/ColorUI/ 将源码放入小程序文件中,只需要 css 的文件包即可,如果下载下的文件是 .css 文件后缀名,直 ...
- 钉钉开发系列(九)SaltUI在VS中的开发
钉钉提供了SaltUI的组件,以利于界面的开发.SaltUI是基于React实现的,所以调用方式与React是一致的.具体的安装过程可以参照官方的说明文档.SaltUI基于React实现,在安装是基于 ...
最新文章
- 学生用计算机2ndf,手机计算器2ndf键在哪 等同于INV键
- php中函数的定义格式,在php中函数定义的格式
- python录制视频和声音_【Python记 #2】有声录屏
- 01_Weblogic课程之概念篇:代理服务器,web服务器,应用程序服务器,JNDI概念,JTA概念,Java消息服务,Java验证和授权(JAAS),Java管理扩展,Web客户机,客户机应用程序
- 条款6:若不想使用编译器自动生成的函数,就该明确拒绝
- dataframe 排序_疯狂Spark之DataFrame创建方式详解一(九)
- STM32的EXTI相关学习笔记
- html 网页整体的背景色,HTML 背景
- arm 基于qcamera实现_基于Arm平台的研华EPC—R4680工控机实现快速储物柜智能解决方案...
- Egret + P2物理引擎入门教程
- opencv 之 颜色通道提取
- 中学关于计算机方面的课题研究,《多媒体信息技术与初中生物教学的整合》课题研究方案...
- 条形码生成软件如何批量生成ISBN条码
- 十分钟掌握折半查找法,
- 关于给手机拍照出现斜条纹的问题
- 基于JAVA汽车出租平台计算机毕业设计源码+数据库+lw文档+系统+部署
- donet datatable的代码输入
- 怎样防止苹果系统更新_苹果手机屏蔽系统更新描述文件链接,可屏蔽ios12更新...
- DSP应用技术(第二章)
- 国外的站长如何做SEO优化?