[已失效]QQ群Hook机器人API的PHP类

2020-04-17 更新
15号机器人自动退群了,hook可能是qq的测试功能,emmm


今天看见群友发了个这玩意,觉得新鲜就拿来瞧瞧了,虽然说是官方机器人,但是还不是很好用,没有获取信息(或信息推送)接口,拿不到信息,只能发信息....
https://web.qun.qq.com/qunrobot/data.html?robot_uin=2854196399&_wwv=128&_wv=3
QQHOOK
点开后添加到群聊,手机打开群->群机器人->HOO!K->推送消息->生成。就可以看到webhook地址了,下面还有官方的调用示例。
API地址
发送成功

附上Hook机器人API的PHP类

来源:权那他

地址:https://krait.cn/major/2025.html

<?php

/**
 * Class HOOK_ROBOT
 * author 权那他
 * date 2020/04/09
 * update 2020/04/12
 */
class HOOK_ROBOT
{
    public static $_instance;
    public static $httpApi;
    public static $message;

    /**
     * @param $array
     */
    public static function setApi($array)
    {
        //hookrobot_api build
        self::$httpApi = $array["api"] . "?" . http_build_query($array["query"]);
        self::init();
    }

    /**
     * 初始化
     * 看腾讯hookrobot后续会新加啥
     */
    public static function init()
    {
        //这样是为了兼容后续腾讯hookrobot会增加参数
        self::$message = array(
            "content" => array()
        );
    }

    /**
     * 设置单实例
     * @param HOOK_ROBOT $hook
     */
    public static function set(HOOK_ROBOT $hook)
    {
        self::$_instance = $hook;
    }

    /**
     * 获取单实例
     * @return HOOK_ROBOT
     */
    public static function get()
    {
        if (empty(self::$_instance)) {
            die("Exception: Single instance is not set");
        }
        return self::$_instance;
    }

    /**
     * @param $msg
     * @param int $type 目前是0,可能后续腾讯hookrobot会有新增加
     */
    public static function setMsg($msg, $type = 0)
    {
        self::$message["content"][] = array(
            "type" => $type,
            "data" => $msg
        );
    }

    /**
     * 发送
     * 第一个是http代号,测试出一直是500
     * 第二个是api返回的内容,现在一直是null
     * @return array
     */
    public static function send()
    {
        $json = json_encode(self::$message);
        // encode 后,就初始化msg
        self::init();
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_URL, self::$httpApi);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_HTTPHEADER,
            array(
                'Content-Type: application/json; charset=utf-8',
                'Content-Length: ' . strlen($json)
            )
        );
        ob_start();
        curl_exec($ch);
        $return_content = ob_get_contents();
        ob_end_clean();
        return array(
            curl_getinfo($ch, CURLINFO_HTTP_CODE),
            $return_content
        );
    }
}

// hookrobot  new 对象,set 单实例
$hook = new HOOK_ROBOT();
$hook->setApi(
    array(
        //hookrobot_api
        "api" => "https://app.qun.qq.com/cgi-bin/api/hookrobot_send",
        //这样做是为了后续腾讯hookrobot更新的新参数
        "query" => array(
            // 这里是 key,自己改成自己群hook的key
            "key" => "13256478748454846856496768"
        )
    )
);
HOOK_ROBOT::set($hook);

//调用方法 1

//这里添加消息内容  可以多次调用
HOOK_ROBOT::setMsg("test 1");
HOOK_ROBOT::setMsg("test 2");

// 最后,添加消息完后,发送
HOOK_ROBOT::send();

//或则 打印返回的内容
var_dump(HOOK_ROBOT::send());


//调用方法 2
// 可以获取hookrobot单实例,类比上面的set
$hook = HOOK_ROBOT::get();
$hook->setMsg("get test 1");
$hook->setMsg("get test 2");
$hook->send();

发表评论

3条评论

    Qicloud

    2020-04-16 Windows10 / Chrome 回复

    这个好像凉了

      风雪作者

      2020-04-17 Windows10 / Chrome 回复

      15号机器人就自动退群了...


    七年

    2020-04-22 Windows10 / Chrome 回复

    ::(捂嘴笑)我才写完易语言的 就凉了


设置
配色方案

布局

现在购买