基于:
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/可以自己直接注冊一個使用者賬戶在其中測試一下。網站水管小。可能加載下載下傳檔案可能會慢點