北京志远天辰科技有限公司-旗下
首页 » 产品教程 » laravel使用自定义SDK 免登录,扫码登录,服务订阅,机器人

laravel使用自定义SDK 免登录,扫码登录,服务订阅,机器人

作者:钉钉硬件分类: 产品教程 时间:2021-11-24 8:54浏览:495次

基于:

laravel


https://gitee.com/chinakaiyuan/laravelgrid

下载laravelgrid代码配置一下。安装完毕,登录后如图:

image.png

如图填写必要的信息,保存。子表会出现对应的访问地址

image.png

子表的地址是自动创建的接口,其中免登录必须在钉钉中打开。

2、https://域名/+地址  就是访问的接口。访问会出现钉钉扫码的二维码如:

image.png

主要 函数算法说明:

3、想使用机器人主动发消息  需要配置机器人

image.png

关于新增机器人这点,没得办法,目前必须自己新增。群添加机器人事件目前还没有开放。另外自定义群机器人不支持发送单聊消息。

注意,自定义机器人,不用选群聊机器人名称。如果选了加签,加签值就必须填

image.png

机器人填完后,可发送消息。下拉选项中已经定义好了支持的消息类型。消息内容中修改对应值,点击发送就完成消息发送

image.png

当然如果发送单人消息,必须在钉钉人员中同步钉钉用户。

image.png


4,订阅消息。完成钉钉配置后,子表会产生订阅消息地址。钉钉触发订阅的消息,都会出现在这个界面。多应用都设置了同样的订阅消息,每个应用都会触发。例如:截图是一次打卡消息,应用namenode2和namenode 都触发了一次。这里保存的是解密后的消息

image.png

5、日志。保存了接受消息内容,发送消息内容

image.png

是数据的原始消息。加密消息,可用postman等工具调试。

主要算法说明

使用https://gitee.com/chinakaiyuan/dingtalk SDK。

主程序源码https://gitee.com/chinakaiyuan/laravelgrid

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/   可以自己直接注册一个用户账户在其中测试一下。网站水管小。可能加载下载文件可能会慢点