- 随着晨风机器人的被抓,各家的机器人也相继宣布停止运营,一时间各种机器人相继暴毙,而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);
- 到此就绑定成功,然后就可以使用机器人啦