Rumah > rangka kerja php > Laravel > Laravel boleh menggunakan DingTalk untuk menerima makluman sistem!

Laravel boleh menggunakan DingTalk untuk menerima makluman sistem!

藏色散人
Lepaskan: 2022-01-17 10:17:15
ke hadapan
2089 orang telah melayarinya

Lajur Tutorial Laravel berikut akan memperkenalkan kepada anda cara menggunakan bot sembang DingTalk untuk menerima makluman sistem dalam rangka kerja Laravel saya harap ia akan membantu anda!

1. Dapatkan Token Akses DingTalk Chatbot

Sebelum menggunakan sambungan ini, anda memerlukan ding-doc.dingtalk.com/doc#/servera... untuk mendapatkan maklumat yang berkaitan.

2. Pengetahuan yang diperlukan

Karbon

GuzzleHttp

  • 3 Kod penulisan
  • 4 . Cadangan lain

Adalah disyorkan untuk menggunakan baris gilir redis untuk operasi Untuk butiran tentang Acara, Pendengar dan operasi yang berkaitan dengan redis, sila semak dokumentasi rasmi laravel

<?php

namespace 所在命名空间;

use CarbonCarbon;
use GuzzleHttpClient;
use GuzzleHttpExceptionGuzzleException;
use IlluminateSupportFacadesLog;

class Ding
{
    CONST BASE_URI   = "https://oapi.dingtalk.com/";
    CONST NOTICE_URL = [
        "robot/send?access_token=*******",
        &#39;robot/send?access_token=*********&#39;
    ];

    /**
     * Description: 钉钉文本通知
     * @param        $data
     * @param array $at
     * @param bool $isAtAll
     * @throws GuzzleException
     */
    public static function text($data, $at = [], $isAtAll = false)
    {
        $notice_url = self::NOTICE_URL[rand(0, count(self::NOTICE_URL) - 1)];
        $data = "#### 异常触发时间".Carbon::now()->format(&#39;Y-m-d H:i:s&#39;)."n".$data;
        $pushData = [
            &#39;msgtype&#39; => &#39;text&#39;,
            &#39;text&#39;    => [&#39;content&#39; => $data],
            &#39;at&#39;      => [&#39;atMobiles&#39; => $at, &#39;isAtAll&#39; => $isAtAll],
        ];
        self::getData($notice_url, $pushData);
    }

    /**
     * Description: 钉钉预警markdown
     * @param        $data
     * @param array $at
     * @param bool $isAtAll
     * @throws GuzzleException
     */
    public static function markdown($data, $at = [], $isAtAll = false)
    {
        $notice_url = self::NOTICE_URL[rand(0, count(self::NOTICE_URL) - 1)];
        $data[&#39;text&#39;] = "#### 异常触发时间".Carbon::now()->format(&#39;Y-m-d H:i:s&#39;)."n".$data[&#39;text&#39;];
        $pushData = [
            &#39;msgtype&#39;  => &#39;markdown&#39;,
            &#39;markdown&#39; => $data,
            &#39;at&#39;       => [&#39;atMobiles&#39; => $at, &#39;isAtAll&#39; => $isAtAll],
        ];
        self::getData($notice_url, $pushData);
    }

    /**
     * Description: 钉钉预警处理
     * @param $notice_url
     * @param $pushData
     * @throws GuzzleException
     */
    public static function getData($notice_url, $pushData)
    {
        try {
            $client = new Client([&#39;base_uri&#39; => self::BASE_URI, &#39;timeout&#39; => 3.0]);
            $res    = $client->request(&#39;POST&#39;,
                $notice_url,
                [&#39;headers&#39; => [&#39;Content-Type&#39; => &#39;application/json;charset=utf-8&#39;,],
                    &#39;json&#39;    => $pushData,
                    &#39;verify&#39;  => false]);
            $result = json_decode($res->getBody()->getContents(), true);

            if ($result[&#39;errmsg&#39;] != &#39;ok&#39; && $result[&#39;errcode&#39;] != 0) {
                Log::debug(&#39;钉钉推送数据失败&#39;, [&#39;result&#39; => $result,&#39;url&#39;=>$notice_url]);
            }
        }
        catch (Exception $e) {
            Log::debug(&#39;钉钉推送异常!&#39;,[&#39;data&#39;=>$pushData,&#39;url&#39;=>$notice_url,&#39;env&#39;=>App::environment()]);
        }
    }
}
Salin selepas log masuk

Cadangan: "

Lima tutorial video Laravel terkini

Atas ialah kandungan terperinci Laravel boleh menggunakan DingTalk untuk menerima makluman sistem!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:learnku.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan