天天看點

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

基于:

laravel

https://gitee.com/chinakaiyuan/laravelgrid

下載下傳

laravelgrid

代碼配置一下。安裝完畢,登入後如圖:

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

如圖填寫必要的資訊,儲存。子表會出現對應的通路位址

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

子表的位址是自動建立的接口,其中免登入必須在釘釘中打開。

2、https://域名/+位址 就是通路的接口。通路會出現釘釘掃碼的二維碼如:

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

主要 函數算法說明:

3、想使用機器人主動發消息 需要配置機器人

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

關于新增機器人這點,沒得辦法,目前必須自己新增。群添加機器人事件目前還沒有開放。另外自定義群機器人不支援發送單聊消息。

注意,自定義機器人,不用選群聊機器人名稱。如果選了加簽,加簽值就必須填

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

機器人填完後,可發送消息。下拉選項中已經定義好了支援的消息類型。消息内容中修改對應值,點選發送就完成消息發送

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

當然如果發送單人消息,必須在釘釘人員中同步釘釘使用者。

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

4,訂閱消息。完成釘釘配置後,子表會産生訂閱消息位址。釘釘觸發訂閱的消息,都會出現在這個界面。多應用都設定了同樣的訂閱消息,每個應用都會觸發。例如:截圖是一次打卡消息,應用namenode2和namenode 都觸發了一次。這裡儲存的是解密後的消息

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

5、日志。儲存了接受消息内容,發送消息内容

laravel使用自定義SDK 免登入,掃碼登入,服務訂閱,機器人

是資料的原始消息。加密消息,可用postman等工具調試。

主要算法說明

使用

https://gitee.com/chinakaiyuan/dingtalk

SDK。

主程式源碼

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/

可以自己直接注冊一個使用者賬戶在其中測試一下。網站水管小。可能加載下載下傳檔案可能會慢點