成都设计公司网站,wordpress主题logo修改,人力资源培训网,浙江网架公司安装环境 PHP 拓展 直接使用 宝塔一键安装 #xff08;Windows系统不支持#xff09;
设置命令行的PHP版本避免执行脚本时 获取不到 swoole 检查swoole是否安装成功 获取官方SDK
GitHub - kaiheila/php-bot: 开黑啦机器人的php版本https://github.com/kaiheila/php-bot 配…安装环境 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 参数 compress0 以停用压缩)
?phpnamespace app\api\controller;use think\Env;
use think\Log;
class Api
{private $config [];public function __construct(){$this-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验证错误]);}}}}}/*** 数据加密* param $data* param $key 密钥* return string*/private function encryptData($data, $key){$iv substr(md5(uniqid()), 0, 16);return base64_encode($iv.openssl_encrypt($data, aes-256-cbc, $key, 0, $iv));}/**** 数据解密* param $eData* param $key 密钥* return false|string*/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即可 配置好参数 官方示例使用的是 swoole中的 http 服务器
实例化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, 啊啊啊啊); 在频道内随便发送一条信息 监听到数据