基于:
laravel
https://gitee.com/chinakaiyuan/laravelgrid下载
laravelgrid代码配置一下。安装完毕,登录后如图:
如图填写必要的信息,保存。子表会出现对应的访问地址
子表的地址是自动创建的接口,其中免登录必须在钉钉中打开。
2、https://域名/+地址 就是访问的接口。访问会出现钉钉扫码的二维码如:
主要 函数算法说明:
3、想使用机器人主动发消息 需要配置机器人
关于新增机器人这点,没得办法,目前必须自己新增。群添加机器人事件目前还没有开放。另外自定义群机器人不支持发送单聊消息。
注意,自定义机器人,不用选群聊机器人名称。如果选了加签,加签值就必须填
机器人填完后,可发送消息。下拉选项中已经定义好了支持的消息类型。消息内容中修改对应值,点击发送就完成消息发送
当然如果发送单人消息,必须在钉钉人员中同步钉钉用户。
4,订阅消息。完成钉钉配置后,子表会产生订阅消息地址。钉钉触发订阅的消息,都会出现在这个界面。多应用都设置了同样的订阅消息,每个应用都会触发。例如:截图是一次打卡消息,应用namenode2和namenode 都触发了一次。这里保存的是解密后的消息
5、日志。保存了接受消息内容,发送消息内容
是数据的原始消息。加密消息,可用postman等工具调试。
主要算法说明
使用
https://gitee.com/chinakaiyuan/dingtalkSDK。
主程序源码
1、文件 App\Providers\DingTalkServiceProvider
//从数据库中读取保存好的配置信息
$this->app->singleton('DT', function ($app) {
return function ($userid, $name) {
//主要配置
$config = DingTalkSetting::where("creator_id", $userid)->first();
//App 配置
$ServerApp = DingTalkApp::where("creator_id", $userid)->where("name", $name)->first();
$appconfig = $config->toArray();
if ($ServerApp) {
//保存日志时,保存下是哪个用户的,哪个应用的日志
$appconfig['app_id'] = $ServerApp->id;
$appconfig['creator_id'] = $userid;
//设置跳转地址
$appconfig['redirect'] = Request::url();
$appconfig = array_merge($ServerApp->toArray(), $appconfig);
}
$ddApp = new Application($appconfig);
//设置access_token 保存接口,实现set 和get 方法
$ddApp->access_token->setCache($config);
//设置日志驱动 实现debug方法
$ddApp->logger->set($config);
return $ddApp;
};
});
内部使用方法:
app("DT")(用户ID, 应用名称) 例如
我的ID 是1,机器人名叫robot。那么这个机器人调用方式是
app("DT")(1,'robot')->robot;
开放测试网站
https://namenode.cn/可以自己直接注册一个用户账户在其中测试一下。网站水管小。可能加载下载文件可能会慢点