zoukankan      html  css  js  c++  java
  • PHP调用钉钉机器人

    采用php代码调用钉钉机器人,只在工作日发送一些提醒

    一、添加自定义机器人方法

    您好,群主/群管理员可以在电脑端通过如下的路径添加自定义机器人:

    步骤一:【电脑钉钉 】-【群聊】-【群设置】-【智能群助手】-【添加更多】-【添加机器人】-【自定义】-【添加】,编辑机器人名称和选择添加的群组。完成必要的安全设置(至少选择一种),勾选 我已阅读并同意《自定义机器人服务及免责条款》,点击“完成”即可。

    步骤二:复制出机器人的Webhook地址(格式如下截图),可用于向这个群发送消息。并点击【完成】,自定义机器人就添加成功了。

    更加详细的设置介绍,请参考链接:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq/9e91d73c


    【温馨提示】:

    1、若关闭【仅群主和群成员可管理】,群成员也是可以添加机器人

    2、出于对于群信息的安全,安全设置必须要选择一项。

    3、由于目前自定义机器人需要进行安全配置,需要在电脑端添加。手机端不支持添加自定义机器人哦。

    4、如果设置或者自定义机器人遇到问题可以查看下开发平台文档中心里关于机器人的介绍,更多的技术求助,可登录开发者后台(https://open-dev.dingtalk.com/)查看相关知识。开发平台文档中心:https://open.dingtalk.com/

     

     

    二、代码:

    <?php
    /**
     * 钉钉相关接口和curl接口
     */
    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;
        }
    
        /**
         * 发起http请求,post为true用POST方式,false为GET方式请求
         */
        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

  • 相关阅读:
    暑假练习:游戏
    Floyd算法 笔记 C/C++
    Bellman-Ford 与 SPFA 算法笔记
    Dijkstra算法 C++
    C/C++ 并查集及其优化笔记整理
    C/C++ 哈夫曼树与哈夫曼编码
    判断是否为同一颗搜索树 C/C++
    C/C++ 平衡二叉树笔记(AVL树)
    VB中 “实时错误“3704”,对象关闭时,不允许操作”
    SQL Server 2014 配置全过程
  • 原文地址:https://www.cnblogs.com/asif/p/13819609.html
Copyright © 2011-2022 走看看