這是一篇利用的飛書的自定義機器人,將系統中的錯誤信息推送給技術群的功能代碼示例。
飛書文檔地址:開發文檔 - 飛書開放平臺
?自定義機器人只能在群聊中使用的機器人,在當前的群聊中通過調用webhook地址來實現消息的推送。
配置群邏輯可以看飛書的官方文檔,下面是示例文檔,僅供參考。
代碼如下:
<?php
namespace app\admin\controller;
use think\Controller;class Feishu extends Controller
{public static $key_words = [1=>'設備故障',];/*** @return array* User:赫陳* Date: 2024-07-02*/public function faulteQuipment(){$res = ["status"=>"no", "message" => "無設備故障,不發送消息"];if(!empty($data)){$res = $this -> sendToFeishu(1,$data);}return $res;}public function sendToFeishu($key_words_id,$alarmMessage){// 獲取告警信息$alarmMessage = self::$key_words[$key_words_id].json_encode($alarmMessage,JSON_UNESCAPED_UNICODE);// 飛書Webhook地址$webhookUrl = 'https://open.feishu.cn/open-apis/bot/v2/hook/你的webhook地址;// 準備請求數據$requestData = ['msg_type' => 'text','content' => ['text' => $alarmMessage,],];
// $client = new Client();
// $response = $client->post($webhookUrl, [
// 'json' => $requestData,
// ]);// 發送POST請求到飛書Webhook地址$response = $this->curlPost($webhookUrl,$requestData);$response = json_decode($response);// 檢查響應狀態碼
// if ($response->getStatusCode() == 200) {if ($response->code == 0) {return ['status' => 'success', 'message' => '告警信息已成功發送到飛書'];} else {return ['status' => 'error', 'message' => '發送告警信息到飛書失敗,原因是:'.$response->msg];}}private function curlPost($url,$postFields){$postFields = json_encode($postFields);$ch = curl_init ();curl_setopt( $ch, CURLOPT_URL, $url );curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8'));curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt( $ch, CURLOPT_POST, 1 );curl_setopt( $ch, CURLOPT_POSTFIELDS, $postFields);curl_setopt( $ch, CURLOPT_TIMEOUT,1);curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false);$ret = curl_exec ( $ch );\think\Log::log('通過CURL發送HTTP請求結果:'.$ret);if (false == $ret) {$result = curl_error( $ch);} else {$rsp = curl_getinfo( $ch, CURLINFO_HTTP_CODE);if (200 != $rsp) {$result = "請求狀態 ". $rsp . " " . curl_error($ch);} else {$result = $ret;}}curl_close ( $ch );return $result;}
}