• 随着晨风机器人的被抓,各家的机器人也相继宣布停止运营,一时间各种机器人相继暴毙,而Mirai是已经开源,虽然原作者已经删库,但是有许多备份库被留了下来,而且该机人可以运行在Linux平台上,不用再为机器人单独安装WinServe平台,大大降低了入门的门槛。
  • 首先是MiraiOK的地址https://github.com/modifyGB/MiraiOK,里面有各种版本的下载链接与运行方式
  • 因为Mirai使用的是Kotlin语言编写,导致 插件编写难度大大增加,但是有一个插件却可以解决这个问题,该插件可以通过api接口的方式来调用机器人,大大降低了编程门槛,插件链接https://github.com/project-mirai/mirai-api-http
  • 该插件的api调用非常简单,现在就用PHP来进行简单的演示。
  • 首先编写HttpService来进行请求,代码如下
public function http_post_json($url, $jsonStr)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json; charset=utf-8',
                'Content-Length: ' . strlen($jsonStr),
            )
        );
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);

        return array($httpCode, $response);
    }
  • 因为所有请求都是POST,所以只写了POST请求
  • 以绑定机器人为例来演示代码
  • 首先对HttpService进行注入
    protected $http;
    //抽出service层
    public function __construct(RobotSessionService $sess)
    {
        $this->sess = $sess;
    }
  • 然后首先获得session
    $url = env('ROBOT_ADDRESS') . 'auth';

    $jsonStr = json_encode(array('authKey' => env('ROBOT_KEY')));

    $data = $this->http->http_post_json($url,$jsonStr);

    $sessionData = json_decode($data[1]);
  • 然后绑定session
    $url = env('ROBOT_ADDRESS') . 'verify';

    $jsonStr = json_encode(array('sessionKey' => $sessionDate->session,'qq' => env('ROBOT_NUM')));

    $data = $this->http->http_post_json($url,$jsonStr);
  • 到此就绑定成功,然后就可以使用机器人啦
Last modification:September 3, 2020
如果觉得我的文章对你有用,请随意赞赏