前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何打造一个属于自己的个性钉钉群机器人?

如何打造一个属于自己的个性钉钉群机器人?

作者头像
槽痞
发布2020-06-23 14:55:26
1.4K0
发布2020-06-23 14:55:26
举报
文章被收录于专栏:PHP开发者那些事

钉钉和企业微信是提供在群内机器人的功能的了,使用钉钉提供的机器人可以做一些好玩的事情。

先上效果图:

群机器人效果图
群机器人效果图

对开发者而言,可以提供一些业务告警、bug反馈消息提示作为辅助的消息提示功能。

对于非开者而言,我们也可以使用它做一些比较皮的功能,比如群报时机器人

不过需要注意的是,钉钉和企业微信的机器人目前并不提供主动交互的功能,主动交互简单说就是你在群里@机器人,,机器人能提供应答机制去响应

需要用到的资源:

  • 腾讯云函数
  • 钉钉自定义机器人webhook地址
  • 触发机器人的PHP脚本(具体代码在本文结尾)

获取自定义机器人的方法: 打开钉钉群-> 点击聊天窗口的群设置->智能群助手->添加机器人。

现在机器人的鉴权方式是必选项了,我们可以选择最简单的方式「关键字鉴权」,我这里用的是关键字是整点报时

腾讯云函数:

  1. 登入腾讯云函数的后台,创建一个云函数,具体操作是:函数服务->新建,填入基础信息,注意运行环境选择PHP7.2,创建方式选择「空白函数」,进入在线编辑代码,复制本文下方的代码进去,点击保存。
  2. 创建完成后,回到列表界面,点击刚创建好的函数,选择「触发方式」,「添加触发方式」,我们这里的功能是实现报时,所以我们选择定时触发,可以选择每分钟触发或每小时触发,然后保存就可以了。

相关文档: 钉钉自定义机器人


PHP脚本代码:

代码语言:javascript
复制
<?php


ini_set('date.timezone','Asia/Shanghai');

class DingMsg{
    //机器人鉴权使用关键字
    const KEYWORD = '整点报时';  //钉钉机器人鉴权的关键字
    //用户bug上报
     const CLOCK_REPORT = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxx";  //替换为你申请的的钉钉机器人webhook地址
    

   public  function requestByCurl($remote_server, $post_string) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $remote_server);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array ('Content-Type: application/json;charset=utf-8'));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        // 线下环境不用开启curl证书验证, 未调通情况可尝试添加该代码
        curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
        $data = curl_exec($ch);
        curl_close($ch);
        $data = is_string($data) ? json_decode($data,true) : $data;
        if($data['errcode'] == 0) return true;
        return false;
    }

    /**
     * @param string $content
     * @Date: 2019/12/21 16:52
     * @descrition:机器人文本消息
     * @return bool
     */
    public function simpleMsg($content = "",$webhook = "")
    {
        if(empty($robot_url)) $webhook = self::CLOCK_REPORT;
        $message=self::KEYWORD.":".$content;
        $data = array ('msgtype' => 'text','text' => array ('content' => $message));
        $data_string = json_encode($data);
        return $this->requestByCurl($webhook, $data_string);
    }

    public function sendClock()
    {
        $min = date('i');
         $t = date('H');
        if($t < 8 && $t >= 19) return false; //8点以前和19点以后不再报时,如果需要的话可以直接注释
        if($min % 60 == 0)
        {
            
            $content = '';
            for($i=0;$i<$t;$i++)
            {
                $content .= '咚~';
            }
            return $this->simpleMsg($content);
        }
        return true;
    }

}
  //腾讯云函数入口函数  
function main_handler($event, $context) {
    $rebot = new DingMsg();
        $rebot->sendClock();
}
 ?>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档