最近在给公司写资产管理系统的时候需要嵌入到钉钉来使用,所以记录下ThinkPHP如何引入钉钉的SDK

钉钉SDK下载地址

https://ding-doc.dingtalk.com/document/resourcedownload/download-server-sdk/title-12y-g4g-zn2?pnamespace=app

下载钉钉SDK后

1、解压删除无用文件 aliyun,QimenCloud 两个目录后,重命名目录 dingtalk

2、将sdk放入到自己合适的项目目录下(我选择extend目录)

3、修改根目录 composer.json文件,autoload字段的files值 新增extend/dingtalk/TopSdk.php用于框架自动加载

4、命令行 根目录下运行 composer dump-autoload 更新加载器

5、可以在config文件里配置下自己需要用到的参数

// +----------------------------------------------------------------------
// | 钉钉配置
// +----------------------------------------------------------------------
'dingtalk' => [

/*
|-----------------------------------------------------------
| 【必填】app的id
|-----------------------------------------------------------
*/
'agent_id' => '1039351969',
/*
|-----------------------------------------------------------
| 【必填】企业 corpId
|-----------------------------------------------------------
*/
'corp_id' => 'ding92d62139d4f758e9fa1320dcb25e91351',
/*
|-----------------------------------------------------------
| 【必填】应用 AppKey
|-----------------------------------------------------------
*/
'app_key' => 'dinghkddmn9tu1fbzfx7k',

/*
|-----------------------------------------------------------
| 【必填】应用 AppSecret
|-----------------------------------------------------------
*/
'app_secret' => 'sqdcDCXmddTpG615kTKUki06zPSh2LW7ibQdQ3VgfD62LFHxVLkPESvdrfX4u6SSW6',

/*
|-----------------------------------------------------------
| 【选填】加解密
|-----------------------------------------------------------
| 此处的 `token` 和 `aes_key` 用于事件通知的加解密
| 如果你用到事件回调功能,需要配置该两项
*/
'token' => 'uhl3CZbtsmf93bFPanmMenhWwrqbSwPc',
'aes_key' => 'qZEOmHU2qYYk6n6vqLfi3FAhcp9bGA2kgbfnsXDrGgN',

/*
|-----------------------------------------------------------
| 【选填】后台免登配置信息
|-----------------------------------------------------------
| 如果你用到应用管理后台免登功能,需要配置该项
*/
'sso_secret' => 'y473Wb2U9AcMp--xYVI0JAc4uq60prSlgqCQQ_HHnC4haNQRw2znpsy8lwrRaSlm',
]


测试

$dingtalk  = config("dingtalk");
$dingding = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
//获取token 使用自己小程序的key & secret
$req = new \OapiGettokenRequest;
$req->setAppkey($dingtalk['app_key']);
$req->setAppsecret($dingtalk['app_secret']);



//重新设置请求类型为 GET
$dingding->httpMethod = 'GET';
//第二参数为token 没有时候传null 第三参数为请求地址 文档中有示例
$resp = $dingding->execute($req, null, "https://oapi.dingtalk.com/gettoken");

//如果请求IP不在白名单中 则返回格式为 code msg ,errcode可能没有这个参数,这点要注意(第一处 踩坑) 格式均为json返回
if(isset($resp->errcode) && $resp->errcode == 0)
{
return $resp->access_token;
}
//完整返回值
{
"errcode": 0,
"errmsg": "ok",
"access_token": "fw8ef8we8f76e6f7s8df8s"
}

至此就完成了,如果有不懂的也可以联系启蒙博客资讯哦

点赞(0) 打赏

Comment list 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部