安装环境 PHP 拓展 直接使用 宝塔一键安装 (windows系统不支持) 设置命令行的php版本避免执行脚本时 获取不到 swoole 检查swoole是否安装成功 获取官方SDK GitHub - kaiheila/php-
安装环境 PHP 拓展 直接使用 宝塔一键安装 (windows系统不支持)
设置命令行的php版本避免执行脚本时 获取不到 swoole
检查swoole是否安装成功
获取官方SDK
GitHub - kaiheila/php-bot: 开黑啦机器人的php版本https://github.com/kaiheila/php-bot
配置参数 机器人链接模式选择 WEBhook
密钥 自己设置
回调链接直接填写 (配置回调地址之前 先将机器人邀请进频道,在域名后面一定要自己定义域名端口如果是正常的80端口会被占用导致无法运行)
端口一定要开放否则无法监听到,如果是腾讯云就去安全组释放端口,最好在宝塔面板页开放端口
获取到邀请链接后直接请求即可
配置好参数示例:
使用tp5框架创建一个 api 文件 用于 配置 WebHook 回调地址 处理 Challenge 请求
(数据默认会先被进行 zlib (deflate)
压缩再发送。请先使用你使用的语言的 zlib
相关方法解压,或在提供给 KOOK 开放平台的 callback url 中加上 Query 参数 compress=0
以停用压缩)
config = [ 'token' => Env::get('kook.token'), 'verify_token' => Env::get('kook.verify_token'), 'encrypt_key' => Env::get('kook.encrypt_key'), ]; } public function start(){ $params = file_get_contents("php://input"); Log::info("接收参数"); $param = json_decode($params,true); Log::info($param); if (isset($param['encrypt']) && !empty($param['encrypt'])){ Log::info('解密信息'); $challenge = $this->decryptData($param['encrypt'],$this->config['encrypt_key']); Log::info($challenge); $response_data = json_decode($challenge,true); Log::info($response_data); if (!empty($response_data)){// 判断是否是验证请求 s 等于 0 代表 消息(包含聊天和通知消息) if (isset($response_data['s']) && $response_data['s'] == 0 && isset($response_data['d']['channel_type']) && $response_data['d']['channel_type'] == 'WEBHOOK_CHALLENGE'){ // 判断验证token是否正确 if ($response_data['d']['verify_token'] == $this->config['verify_token']) { // code... return json(['challenge' => $response_data['d']['challenge']]); }else { return json(['msg'=>'验证错误!']); } } } } } private function encryptData($data, $key) { $iv = substr(md5(uniqid()), 0, 16); return base64_encode($iv.openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv)); } private function decryptData($eData, $key) { $eData = base64_decode($eData); $iv = substr($eData, 0, 16); return openssl_decrypt(substr($eData, 16), 'aes-256-cbc', $key, 0, $iv); }}
在项目根目录(在tp5 command文件夹中创建也可 自定义命令行 ) 创建一个 PHP文件 使用脚本运行 复制官方示例webhook.php即可 配置好参数
实例化http服务器
$http = new Swoole\Http\Server(监听IP地址,监听端口);
监听IP地址: 可以填写 0.0.0.0 代表所有,可以指定 使用当前服务器IP
监听端口:则是你在机器人后台填写的 http请求地址的端口
参数配置好,打开终端 ,进入项目根目录
使用命令 检查端口是否被占用
netstat -anp | grep 9501
如果被占用这 使用命令 kill 进程 注意如果进程后面跟着 Nginx 则代表端口被 nginx占用,那是在绑定域名时设置了端口号,这时候去宝塔域名把绑定了端口的域名删除即可,如果直接kill进程会导致nginx 停止运行(绑定域名时不用设置端口,设置回调地址时设置端口即可)
在执行 文件
php webhook.php 启动
启动成功 打印 啊啊啊
这是我自己在代码中添加的日志
$session->log('receiveFrame', '啊啊啊啊');
在频道内随便发送一条信息
监听到数据
--结束END--
本文标题: 开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔)
本文链接: https://www.lsjlt.com/news/387995.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0