开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔)

这篇具有很好参考价值的文章主要介绍了开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装环境 PHP 拓展 直接使用 宝塔一键安装 (Windows系统不支持)

设置命令行的PHP版本避免执行脚本时 获取不到 swoole

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言

检查swoole是否安装成功

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言

获取官方SDK 

GitHub - kaiheila/php-bot: 开黑啦机器人的php版本https://github.com/kaiheila/php-bot

 配置参数 机器人链接模式选择 webhook

密钥 自己设置

回调链接直接填写 (配置回调地址之前 先将机器人邀请进频道,在域名后面一定要自己定义域名端口如果是正常的80端口会被占用导致无法运行

端口一定要开放否则无法监听到,如果是腾讯云就去安全组释放端口,最好在宝塔面板页开放端口

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言

获取到邀请链接后直接请求即可

配置好参数示例: 

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言

使用tp5框架创建一个 api 文件 用于 配置 WebHook 回调地址 处理 Challenge 请求

(数据默认会先被进行 zlib (deflate) 压缩再发送。请先使用你使用的语言的 zlib 相关方法解压,或在提供给 KOOK 开放平台的 callback url 中加上 Query 参数 compress=0 以停用压缩)

<?php

namespace 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即可 配置好参数

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言

 官方示例使用的是 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 停止运行(绑定域名时不用设置端口,设置回调地址时设置端口即可

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言

在执行 文件 

php webhook.php 启动 

启动成功 打印 啊啊啊

这是我自己在代码中添加的日志
$session->log('receiveFrame', '啊啊啊啊');

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言

 在频道内随便发送一条信息

开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言

 监听到数据开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔),php,swoole,开发语言文章来源地址https://www.toymoban.com/news/detail-668058.html

到了这里,关于开黑啦kook 机器人开发 PHP swoole Liunx 服务器(宝塔)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RPA自动化中的机器人开发:如何开发机器人软件

    随着工业4.0时代的到来,企业对于提高生产效率、降低成本的需求越来越强烈,机器人自动化技术作为其中的一部分,逐渐被广泛应用。机器人自动化技术的其中一个分支——机器人软件,对于机器人的开发和应用具有重要的推动作用。本文旨在介绍如何进行机器人软件的开

    2024年02月13日
    浏览(47)
  • 聊天机器人的机器人API:提供机器人API接口,使开发者能够方便地实现聊天机器人功能

    作者:禅与计算机程序设计艺术 聊天机器人的机器人API:提供机器人API接口,使开发者能够方便地实现聊天机器人功能 1.1. 背景介绍 随着人工智能技术的飞速发展,智能对话交互已逐渐成为各行各业的趋势。在各种智能场景中,聊天机器人作为一种创新的交流方式,为用户

    2024年02月15日
    浏览(49)
  • 关于开发微信个人号机器人/ 微信机器人开发指南

    该文章介绍了微信机器人的基本概念、开发流程、常用技术和开发工具等内容,对初学者非常友好。 微信机器人是一种可以自动执行特定任务的程序,可以在微信平台上进行交互。它可以通过接收用户的信息并作出相应的回应,从而提供更好的用户体验和增强用户参与度。

    2024年02月09日
    浏览(42)
  • 【NLP开发】Python实现聊天机器人(微软Azure机器人服务)

    🍺NLP开发系列相关文章编写如下🍺: 1 🎈【小沐学NLP】Python实现词云图🎈 2 🎈【小沐学NLP】Python实现图片文字识别🎈 3 🎈【小沐学NLP】Python实现中文、英文分词🎈 4 🎈【小沐学NLP】Python实现聊天机器人(ELIZA))🎈 5 🎈【小沐学NLP】Python实现聊天机器人(ALICE)🎈 6

    2024年02月04日
    浏览(44)
  • 钉钉企业内部机器人开发——绑定群聊信息到机器人

    开发机器人的过程中,需要将用户添加的机器人存储在数据库中,对于企业内部机器人,官方只提供一个token,其他的机器人信息都没有提供。 对于自定义webhook机器人,还多了一个secret,其实,一个机器人应该有如下的信息 其中,DingToken字段中存储的是token,也就是访问钉钉

    2024年02月16日
    浏览(39)
  • 【0基础QQ机器人开发】基于go-cqhttp的QQ机器人开发教程,仅供自学

    前言: 程序上云的服务器搭建步骤已经发布,大家可以移步至此查看:【0基础QQ机器人开发二】服务器篇 前段时间由于学习原因产生了一个自动化管理QQ群的需求,在我几天的努力之下,通过各种 学习 CV,终于实现了该需求,但是因为这个项目并不是很完美,里面有些许的bug,导致

    2023年04月08日
    浏览(37)
  • 【ros2 control 机器人驱动开发】简单双关节机器人学习-example 1

    【ros2 control 机器人驱动开发】简单双关节机器人学习-example 1 本系列文件主要有以下目标和内容: 为系统、传感器和执行器创建 HardwareInterface 以URDF文件的形式创建机器人描述 加载配置并使用启动文件启动机器人 控制RRBot的两个关节(两旋转关节机器人) 六自由度机器人的

    2024年02月04日
    浏览(46)
  • 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-- 第三题 跑团机器人 (已完结)

    其它题目 RC-u3 跑团机器人 在桌面角色扮演游戏(TRPG,俗称“跑团”)中,玩家需要掷出若干个骰子,根据掷出的结果推进游戏进度。在线上同样可以跑团,方法是由玩家们向机器人发出指令,由机器人随机产生每个需要掷出的骰子的结果。 玩家向机器人发出的指令是一个仅

    2024年02月16日
    浏览(35)
  • 个微API,微信机器人开发

    简要描述: 退出群聊 请求URL: http://域名地址/quitChatRoom 请求方式: POST 请求头Headers: Content-Type:application/json Authorization:login接口返回 参数: 参数名 必选 类型 说明 wId 是 string 登录实例标识 chatRoomId 是 string 群id 返回数据: 参数名 类型 说明 code string 1000成功,1001失败

    2024年02月16日
    浏览(38)
  • chatgpt模拟机器人软件开发

        ChatGPT的参数取决于具体的模型和实现方式,但以下是一些常见的ChatGPT参数:     模型深度:指模型中神经网络的层数。通常情况下,层数越多,模型的表达能力也就越强。     隐藏单元大小:指在模型中每个隐藏层中神经元的数量。通常情况下,隐藏单元数量越多,模

    2024年02月01日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包