天天看點

php對接釘釘_PHP調用釘釘機器人

采用php代碼調用釘釘機器人,隻在工作日發送一些提醒

一、添加自定義機器人方法

您好,群主/群管理者可以在電腦端通過如下的路徑添加自定義機器人:

步驟一:【電腦釘釘 】-【群聊】-【群設定】-【智能群助手】-【添加更多】-【添加機器人】-【自定義】-【添加】,編輯機器人名稱和選擇添加的群組。完成必要的安全設定(至少選擇一種),勾選 我已閱讀并同意《自定義機器人服務及免責條款》,點選“完成”即可。

php對接釘釘_PHP調用釘釘機器人

步驟二:複制出機器人的Webhook位址(格式如下截圖),可用于向這個群發送消息。并點選【完成】,自定義機器人就添加成功了。

php對接釘釘_PHP調用釘釘機器人

【溫馨提示】:

1、若關閉【僅群主和群成員可管理】,群成員也是可以添加機器人

2、出于對于群資訊的安全,安全設定必須要選擇一項。

3、由于目前自定義機器人需要進行安全配置,需要在電腦端添加。手機端不支援添加自定義機器人哦。

4、如果設定或者自定義機器人遇到問題可以檢視下開發平台文檔中心裡關于機器人的介紹,更多的技術求助,可登入開發者背景(https://open-dev.dingtalk.com/)檢視相關知識。開發平台文檔中心:https://open.dingtalk.com/

二、代碼:

class DingDing

{

const HOST = "https://oapi.dingtalk.com";

public static function sendTxt($token, $content, $isAtAll = true)

{

$url = self::HOST . "/robot/send?access_token=$token";

$data = array(

'msgtype' => 'text',

'text' => array( 'content' => $content ),

'at' => array(

'atMobiles' => array(),

'isAtAll' => $isAtAll,

),

);

$ret = self::reqDing($url, $data);

return $ret;

}

public static function reqDing($url, $postData, $post = true)

{

if (is_array($postData)) {

$postData = json_encode($postData);

}

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

if($post) {

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

}

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json;charset=utf-8' ));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

$data = curl_exec($ch);

curl_close($ch);

$data = empty($data) ? array() : json_decode($data, true);

return $data;

}

public static function getHoliday1($date = '')

{

$holidayUrl = 'http://api.k780.com/?app=life.workday&date=%s&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json';

if($date === '') {

$date = date('Ymd', time());

}

$url = sprintf($holidayUrl, $date);

$judgeHolidayRet = self::reqDing($url, []);

$worknm = $judgeHolidayRet['result']['worknm'];

if(!isset($judgeHolidayRet['result']['worknm'])) {

return false;

}

if($worknm == '工作日') {

return 'yes';

}

return 'no';

}

public static function getHoliday2($date = '')

{

$holidayUrl = 'http://timor.tech/api/holiday/info/%s';

if($date === '') {

$date = date('Y-m-d', time());

}

$url = sprintf($holidayUrl, $date);

$judgeHolidayRet = self::reqDing($url, [], false);

$worknm = $judgeHolidayRet['type']['type'];

if(!isset($judgeHolidayRet['type']['type'])) {

return false;

}

if(($worknm == 0) || ($worknm == 3)) {

return 'yes';

}

return 'no';

}

/**

* 判斷當天是否為工作日

*

public static function judgeWorkDay()

{

$ret1 = self::getHoliday1();

if($ret1 == 'yes') {

return 'yes';

} elseif($ret1 == 'no') {

return 'no';

}

return self::getHoliday2();

}

}

三、git位址:https://github.com/A07110517/dingding-request