1.消息通知给开发者使用websocket服务
2.发送消息,使用openapi即http
3.官方只给了go和node.js的SDK,没有PHP的
4.官方文档: https://bot.q.qq.com/wiki/develop/api/
5.再主动发送消息数量有限制,不同机器人数量不同
6.公域机器人,即其他人搜索即可添加到自己的频道或群,主动发送消息每日数量很少,好像每日就几条
7.私域,即需要开发者设置允许哪个频道或群添加,才能使用。主动消息数量较多,好像调整到了每日100。
8.被动回复消息都不限量
9.准备看下面更凌乱的内容 表情
在gitee找到的一个的例子,其他没找到 阿巴叭叭叭 / QbotPHP /
使用phrity/websocket库搭建websocket服务
本来想用ratchet,一直报错,没整正常
1.PHP > 8.0
2.composer
3.phrity/websocket 版本大于等于2.0
1.机器人目录(自定义)下新建 composer.json
文件,输入
{
"require": {
"phrity/websocket": "^2.0"
}
}
2.打开ssh,进入机器人目录,输入命令 composer install
回车执行
3.在机器人目录新建GuildSocket.php
文件
<?php
use WebSocket\Client;
use WebSocket\Connection;
use WebSocket\Message\Message;
use WebSocket\Middleware\PingResponder;
class GuildSocket
{
private $qqGuildUrl = '';
private $appId = '';
private $token = '';
private $appSecret = '';
private $access_token = '';
private $expires_in = '';
private $guzzleOptions = [];
private $s = '';
private $session_id = '';
private $time0 = 0;
private $seconds = 0;
/**
* 设置最大执行时间设置为无限制
* 设置内存限制设置为无限制
* 初始化参数
*
*/
public function __construct(String $qqGuildUrl, String $appId, String $token, String $appSecret, Array $guzzleOptions)
{
set_time_limit(0);
ini_set('memory_limit','-1');
$this->qqGuildUrl = $qqGuildUrl;
$this->appId = $appId;
$this->token = $token;
$this->appSecret = $appSecret;
$this->guzzleOptions = $guzzleOptions;
}
/**
* @param $token
* @return mixed
* 获取Gateway
*/
private function getGateway(String $token): string
{
return "wss://sandbox.api.sgroup.qq.com/websocket";
}
/**
* @param $url 请求地址
* @param $method 请求方法
* @param $param 请求参数
* @param $headers 请求头
* 构造HTTP请求
*
*/
private function httpRequest($url, $method = "POST", $param = "", $header = [])
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response, true);
return $response;
}
/**
* 获取openapi的调用凭证access_token
*/
private function getSendMsgToken()
{
$param = [
"appId"=> $this->appId,
"clientSecret"=> $this->appSecret
];
$token = $this->httpRequest("https://bots.qq.com/app/getAppAccessToken", "POST", json_encode($param), ['Content-Type: application/json']);
if(!empty($token['access_token'])) {
// 更新token及token失效时间
$this->access_token = $token['access_token'];
$this->expires_in = $token['expires_in'] + time();
echo("\033[32m[消息发送token更新]\033[0m\n" . $token['access_token'] . "\n\n");
}
}
/**
* @param String $token
* @param Client $client
* @return String
* WS身份验证,返回SessionID
*/
private function idVerify(String $token, Client $client): string
{
$data = [
'op' => 2,
'd' => [
'token' => "Bot " . $this->appId . "." . $this->token,
'intents' => 2081166851,
'properties' => []
]
];
$client->text(json_encode($data));
$receive = $client->receive()->getContent();
$session_id = json_decode($receive, true)['d']['session_id'];
echo("\033[32m[身份鉴权完毕]\033[0m\n session_id:" . $session_id . "\n\n");
return $session_id;
}
/**
* 建立WS连接
*/
public function connect()
{
//获取WS连接路径
$gateway = $this->getGateway($this->token);
//创建连接
$this->s = '';
$client = new Client($gateway);
// //获取心跳间隔
$this->seconds = intval($this->getHeartBeat($client));
echo("\033[32m[连接成功]\033[0m\n心跳间隔:" . $this->seconds . "\n\n");
//身份鉴权
$this->session_id = $this->idVerify($this->token, $client);
// 获取发送消息鉴权token
$this->getSendMsgToken();
//首次心跳
$this->time0 = time();
$client->text(json_encode(['op'=>1, 'd'=>null]));
// //消息监听
$client->setTimeout($this->seconds)
// Add standard middlewares
->addMiddleware(new PingResponder())
// Listen to incoming Text messages
->onText(function (Client $client, Connection $connection, Message $message) {
//将消息转换为数组
$receiveArr =json_decode($message->getContent(), true);
//如果op存在
if (isset($receiveArr['op'])){
//排除心跳pong
//if($receiveArr['op']!=11){}
//如果是服务端推送,将消息派发到队列处理
if($receiveArr['op']==0){
// 写入最新消息识别码s
$this->s = $receiveArr['s'];
echo("\033[34m[收到消息]\033[0m\n" . $receiveArr['d']['content'] . "\n\n");
// 传递消息给消息处理类
GuildMessage::msgDispatch($this->qqGuildUrl, $this->appId, $this->access_token, $receiveArr);
}
//如果服务端通知重连
if($receiveArr['op'] == 7){
$client->text(json_encode(['op'=>6, 'd'=>['token'=>"Bot ".$this->appId.".".$this->token, 'session_id'=>$this->session_id, 's'=>$this->s]]));
}
}
})
->onTick(function (Client $client){
//检测是否到心跳时间
$time1 = time();
if($time1 - $this->time0 > $this->seconds - 20){
$client->text(json_encode(['op'=>1, 'd'=>$this->s]));
echo("\033[32m[心跳成功]\033[0m\n消息识别码(s):" . $this->s . "\n\n");
$this->time0 = $time1;
};
// 更新openapi调用鉴token
if($this->expires_in - $time1 < 60) {
$this->getSendMsgToken();
}
})
->onError(function (Client $client){
//重新连接
$client->text(json_encode(['op'=>6, 'd'=>['token'=>"Bot ".$this->appId.".".$this->token, 'session_id'=>$this->session_id, 's'=>$this->s]]));
})
->start();
}
/**
* @param $client
* @return float
* 获得心跳时间
*/
public function getHeartBeat($client)
{
$receive = $client->receive()->getContent();
$initReceive = json_decode($receive, true);
return floor($initReceive['d']['heartbeat_interval']/1000);
}
}
4.新建
文件
<?php
require './vendor/autoload.php';
// websocket服务管理类
require "GuildSocket.php";
// 消息处理类
require "GuildMessage.php";
// phrity/websocket库,要求2.0以上版本
use WebSocket\Client;
$qqGuildUrl='https://sandbox.api.sgroup.qq.com'; // 沙盒环境接口
// $qqGuildUrl='https://api.sgroup.qq.com'; // 正式环境接口
$appId = ""; // QQ机器人ID
$token = ''; // 机器人toekn
$appSecret = ""; // 机器人密钥
$guzzleOptions = ['verify' => false];
$guild = new GuildSocket($qqGuildUrl, $appId, $token, $appSecret, $guzzleOptions);
$guild->connect();
5.创建文件
这个文件是消息处理文件
<?php
/**
* 消息处理类
*/
class GuildMessage
{
/**
* 接收消息
*
*/
public static function msgDispatch(String $qqGuildUrl, String $appId, String $access_token, Array $receiveArr) {
// 事件类别
$eventType = $receiveArr['t'];
// 消息内容
$receiveMsgArr = $receiveArr['d'];
// 构建发送子频道消息接口
$postUrl = $qqGuildUrl . "/channels/" . $receiveMsgArr['channel_id'] . "/messages";
// 构建回复消息
$sendMsgArr = [
"msg_id"=> $receiveArr['id'],
];
$content = '';
// @机器人的消息处理
if($eventType == "AT_MESSAGE_CREATE") {
$content = self::msgAtBot($receiveMsgArr);
}
if(!empty($content)) {
$sendMsgArr['content'] = $content;
$headers = [
'Authorization: QQBot ' . $access_token,
'X-Union-Appid: ' . $appId,
];
// 发送消息
self::httpRequest($postUrl, "POST", json_encode($sendMsgArr), $headers);
echo("\033[34m[发送消息]\033[0m\n".$content."]\n\n");
}
}
/**
* @机器人消息处理事件
* return 返回消息内容(文本消息)
*
*/
private static function msgAtBot(Array $receiveMsgArr) {
// 消息内容
$msgContent = preg_match('/<@!.*?>\s*(.*)/', $receiveMsgArr['content'], $matches);
$msgContent = $matches[1];
$content = self::httpRequest("https://api.lolimi.cn/API/AI/wx.php?msg=" . $msgContent, "GET")['data']['output'];
return $content;
}
/**
* 构建http请求
*
*/
private static function httpRequest($url, $method = "POST", $param = "", $headers = array()) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, array_merge($headers, ['Content-Type: application/json']));
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response, true);
return $response;
}
}
6.配置qBot.php
文件内信息即可
7.ssh进入机器人文件夹下,执行命令php qBot.php
,即可运行
1.消息处理只给了一个简单例子,自行添加修改即可
2.webscoket库一定要大于等于2.0版本
3.PHP版本要大于等于8.0
4.PHP安装fileinfo
拓展
持续运行机器人:
ssh执行命令screen -S qqbot php qBot.php
海云博客公告
海云博客、云服务、API、霹雳霹雳、百宝箱、LGZ、影视、卡密网等由于特殊原因将于2025年3月-6月末暂时停更停维护
Interfejs aplikacji jest intuicyjny i dostosowany do ekranów różnej
wielkości, co zapewnia komfortową rozgrywkę na każdym
urządzeniu.
Use Taya365 bonuses for maximum victories
taya 365 app
Get started your journey to big rewards at Taya365. With a variety of games
to choose from, including sports betting, there’s always something new to try.
Join now and start scoring!
taya365 app casino
Always available support – we’re ready to help! If you have any questions,
the Pin-Up Casino support team is always ready. Contact us
via chat, email, or Telegram for fast help and solutions to your issues.
pin up casino aviator
Pin-Up Casino Free spins rewards: A True Game-Changer?
Free spins are one of the top methods to gain an advantage without betting
your own money. Pin-Up Casino offers these as part of its incentives, and I’ve had some pretty good luck.
What about you? Have you taken advantage of the free spins to collect some massive rewards?
Let us know your story!
Claim Your 150% Welcome Bonus with Bet9ja Today!
old bet9ja
Looking for a simple betting experience? Access the Bet9ja Old Mobile version and
enjoy fast loading times and easy navigation. Bet on soccer, casino games, and virtual races without the distractions of
the new version. Start betting in minutes!
old bet9ja
Süper bonuslar ve slot oyunlarıyla Pinco Casino'yu keşfedin!
pin up casino
Pinco Casino, spor bahisleri ve daha fazlasını sunan bir platformdur.
Özel bonuslarla hemen katılın ve kazanmak için şansınızı deneyin!
pinco ne demek
让我们看看我们今晚能走多远 - https://rb.gy/es66fc?Kenlywet
Ողջույն, ես ուզում էի իմանալ ձեր գինը.
让我们看看我们今晚能走多远 - https://rb.gy/es66fc?Kenlywet
أنا ألعب 1xbet مصر – دون مشاكل ومربح!
السحب فوري دائماً! TAYA365 customer support
让我们看看我们今晚能走多远 - https://rb.gy/es66fc?Kenlywet
建议补充发展中国家案例,避免视角局限。
أفضل كازينو – 1xbet Egypt! احتمالات ربح مرتفعة ومكافآت ضخمة!
Bônus Pagbet
Interesują Cię rywalizacji? W VOX Casino czekają na Ciebie ekscytujące rywalizacje z nagrodami sięgającymi ponad 100000 zł!
Zarejestruj się i udowodnij, że jesteś
najlepszy!
vox casino
Interesuje Cię innowacyjne kasyno? Kasyno VOX to świetne miejsce dla początkujących.
Uzyskaj bonus powitalny i graj w sloty! voxcasino
Esta plataforma Pagbet: onde a o entusiasmo das apostas
te encontra
pagbet oficial
Procurando o melhor site para jogar? Não perca a Pagbet – uma plataforma de alta qualidade, uma vasta gama de
eventos esportivos e ofertas incríveis. Cadastre-se hoje e vivencie todos os
vantagens das melhores apostas esportivas!
pag bet aposta
جرب 1xBet اليوم! 1xbet تحميل
هل ترغب في المزيد من الفرص للربح؟ 1xBet توفر لك أسهل تجربة للمراهنات.
جربه الآن واحصل على مزايا حصرية مع رمز الترويج TOP7BET.
ابدأ اليوم! 1xbet تحميل
GratoWin Italia: Certificata per tutti gli appassionati di giochi online.
gratowin casino
Recupera parte delle perdite con il cashback settimanale su GratoWin. Ricevi un rimborso assicurato ogni settimana, insieme a giri gratis.
Un incentivo speciale per giocare.
grato win
أفضل الألعاب الأكثر ربحًا في كازينو 888!
casino 888 كازينو 888 هو الخيار المثالي لكل من يبحث
عن أمان، متعة وفرص للفوز. مع مجموعة من الألعاب
الرائعة، وفرص فوز كبيرة، لا تفوت
الفرصة! انضم الآن! كازينو 888
Fai la tua scelta su Winnita. winnita
Con Winnita Casino, il gioco è solo l’inizio per guadagnare!
Dai giochi da tavolo alle slot più innovative, ogni tua sessione potrebbe essere quella vincente.
Unisciti ora e ottieni il tuo bonus!
winnita
Wejdź w VOX Casino i przeżyj świat gier hazardowych, gry i fantastycznych bonusów.
Oczekujemy na Ciebie! Zapisz się już teraz!
vox pl - Chad -
Kasyno VOX oferuje hojne promocje dla nowych graczy. Rozpocznij grę i zdobądź 125% bonusu i spiny bonusowe!
vox casino
Esta plataforma Pagbet — a plataforma de jogos segura e justa no país
pag bet
Pagbet não é apenas sobre apostas. É uma experiência de
ganhar com bônus de cair o queixo nas apostas dos seus esportes
favoritos! Inscreva-se e veja o quanto você pode realmente conquistar
agora mesmo!
pag bet aposta
Vostok казиносының бір бөлігі болыңыз —
қазір жеңіп алыңыз! казино восток Vostok казиносы — қауіпсіз және әділ ойындар ойнаудың тамаша
алаңы. Лицензияланған ойындар, жоғары RTP және жылдам төлемдер.
Vostok-қа қосылып, жеңісті қолыңызға алыңыз!
vostok
هل أنت مهتم بكود ترويجي حصري؟ استخدم TOP7BET الآن!
1xbet تحميل
أنت مهتم بمراهنات رياضية مميزة؟ ابدأ مع 1xBet وتمتع
بأفضل العروض. نحن نقدم تجربة مراهنات مع عروض ضخمة
على أول إيداع. لا تتردد، قم بالتحميل
الآن! 1xbet
PHP搭建QQ机器人(QQ官方) - LGZ-海云博客
atbhpdrgl
[url=http://www.gv81g27p6axi2or77g5324xvy152t1nzs.org/]utbhpdrgl[/url]
tbhpdrgl http://www.gv81g27p6axi2or77g5324xvy152t1nzs.org/
Mostbet UZ – bu sport va kazino o'yinlari uchun ideal sayt, bunda siz bonuslar olish imkoniyatiga ega bo'lasiz.
Ro'yxatdan o'ting va 3,000,000 UZS bonus dan foydalaning.
Mostbet Uzbekistan
Mostbet Colombia – una opción confiable para apuestas en vivo en Colombia.
Descarga la app y obtén acceso a estadísticas en tiempo real .
Mostbet – mobilní dostupnost.
Mostbet Portugal – plataforma segura e licenciada .
Oferece jogos de alta qualidade . Mostbet Apostas Online
लाइव कैसीनो गेम्स का आनंद लें .
mostbet aviator
Mostbet Türkiye – spor bahisleri ve canlı casino için ideal seçimdir
bonuslar kazanmak isteyenler için mükemmeldir.
Спорттық ставкалар Mostbet – кең
ауқымды мүмкіндіктер ұсынады мобильді қосымша сүйінушілеріне.
mostbet kazakhstan
Mostbet BD tətbiqi ilə hər yerdə oynayın Mostbet BD
Mostbet oferuje profesjonalną obsługę klienta 24/7.
Bonusy są atrakcyjne. Dołącz do społeczności
Mostbet już dziś! mostbet kasyno
Înscrieți-vă acum și obțineți bonus de bun venit 300€ .
Pariuri sportive Mostbet – alegere excelentă pentru jocuri de cazino tuturor pasionaților.
Mostbet Casino
Mostbet qeydiyyatı – sürətli və asandır.
mostbet az casino
Mobil tətbiqimizi yükləyin – hər kəs üçün əlçatan və rahat platformadır.
mostbet promo kod
Mostbet Pakistan – complete platform for casino games .
Mostbet bonusları – hər kəs üçün əlçatandır .
mostbet promo kod
Hyödynnä bonukset – voit saada talletusbonuksen .
MostBet Login
Присоединяйтесь к Mostbet прямо сейчас
и наслаждайтесь игрой . мостбет зеркало сегодня
Mostbet مصر
Nutzen Sie exklusive Promotionen und genießen Sie sichere Transaktionen .
Mostbet HU Bónusz
Mostbet Juegos – experiencia completa para apuestas deportivas .
Profitez des promotions exclusives – accessible à
tous. Mostbet France
बड़े बोनस के साथ जीतें.
mostbet aviator
Mostbet România – experiență unică pentru jocuri de cazino .
Mostbet registrering – populär spelplattform
för sportspel .
Mostbet UZ – bu sport va kazino o'yinlari uchun ideal sayt, bunda
siz mobil ilova bilan ishlash imkoniyatiga ega bo'lasiz.
Ro'yxatdan o'ting va birinchi depozit uchun maxsus takliflar dan foydalaning.
Mostbet kirish
Спорттық ставкалар Mostbet – инновациялық платформа болып табылады онлайн казино сүйінушілеріне.
Мостбет Кз (Christel)
Mostbet Chile – múltiples métodos de pago .
Kazino oyunları – unikal imkandır slot maşınları üçün istifadəçilər üçün.
mostbet promo kod
Mostbet Colombia – una plataforma líder para apuestas en vivo en Colombia.
Descarga la app y obtén acceso a bonificaciones exclusivas .
Marzysz o wygranej? Mostbet – idealne rozwiązanie dostarcza bogatą ofertę gier kasynowych .
Sprawdź sam! mostbet logowanie
Získejte přístup k živému sázení a užijte si intuitivní
rozhraní .
Mostbet Pakistan – officially licensed .
Online-pelit – loistava pelialusta kokeneille pelaajille
. MostBet Login
Mostbet BD tətbiqi ilə hər yerdə oynayın mostbet
Mostbet Portugal – opção confiável para apostas . Oferece jogos de alta qualidade .
Mostbet Portugal
Mobil tətbiqimizi yükləyin – hər kəs üçün əlçatan və rahat
platformadır. mostbet azerbaycan
Mostbet France – votre destination idéale pour parier sur
les sports . mostbet casino
Mostbet зеркало – идеальное решение для ставок на спорт .
мостбет зеркало сегодня
Înscrieți-vă la Mostbet – pentru fanii pariurilor .
Mostbet Casino
Mostbet bonusları – inanılmaz təklifdir onlayn oyunlar oynamaq sevənlər üçün.
mostbet az
Nutzen Sie Willkommensbonus und genießen Sie mobile App.
Бонусдор жана акциялар – ыңгайлуу интерфейс спортко ставка коюу үчүн.
Mostbet kg
Отримайте бонус та заробляйте легко.
mostbet ua
mostbet hungary
هل تريد أقوى شركة رهان؟ 1xbet Egypt يضمن
أفضل العروض ونظام احترافي!
1xBet تحميل
Mostbet كازينو
আপনি কি ক্রিকেট বা অন্য কোন ইভেন্টে বাজি ধরতে চান?
Melbet বাংলাদেশের বিশ্বস্ত বুকমেকার হিসেবে আপনাকে ৩৫০+ স্পোর্টস ইভেন্টে বাজি ধরার সুযোগ দেয়। আজই নিবন্ধন করুন!
melbet app
¡Nunca fue tan fácil hacer apuestas en vivo! Con 1Win, puedes disfrutar
los juegos y apostar en tiempo real.
1win descargar
PHP搭建QQ机器人(QQ官方) - LGZ-海云博客
[url=http://www.gd3ei0ldrn32v99vm6fk8ms62186u514s.org/]uqstvnortw[/url]
qstvnortw http://www.gd3ei0ldrn32v99vm6fk8ms62186u514s.org/
aqstvnortw
تحميل برنامج 1xbet الكامل للعب في كازينو
الإنترنت في دولة الإمارات العربية المتحدة
Cheers for your dedication and the effort you put into this write-up!
Mostbet ক্যাসিনো – অসাধারণ প্ল্যাটফর্ম অনলাইন গেমস জন্য। mostbet