此包已弃用且不再维护。作者建议使用https://github.com/digitalstars/simplevk 包。

用于轻松处理 VK 社交网络 API 的库

v3.1.10-beta 2024-08-19 20:44 UTC

README

SimpleVK logo

php version VK api version Latest Stable Version VK api version License

SimpleVK 2

目录

为什么选择 SimpleVK?

创建机器人需要最少的代码,因为大多数 VK API 方法都实现了方便的函数。
还有现成的模块,可以简化开发

  • 发送消息
  • 处理命令
  • 处理按钮

功能

库支持

  • 回调 API
  • 用户长轮询 API
  • 机器人长轮询 API
  • 执行
  • VKCoin API
  • 在用户账户上创建机器人
  • 处理语音消息和文档

连接

使用 composer

composer require digitalstars/simplevk
require_once "vendor/autoload.php"; //Подключаем библиотеку

手动

  1. 下载最新版本
  2. 连接 autoload.php。如果你的脚本位于与 simplevk-master 相同的文件夹中,连接方式如下:
require_once "simplevk-master/autoload.php"; //Подключаем библиотеку

检查服务器准备情况

为了确保你的服务器可以与 simplevk 一起工作,需要创建并运行以下脚本:

require_once 'vendor/autoload.php';
\DigitalStar\vk_api\Diagnostics::run();

如果你正在创建长轮询机器人,请通过控制台运行诊断
如果你正在创建回调机器人,请通过浏览器运行诊断

诊断输出示例

使用示例

更多示例请参阅文档网站
为了方便起见,可以为每个机器人添加以下常量

const VK_KEY = ''; //токен сообщества или пользователя
const CONFIRM_STR = ''; //ключ авторизации сообщества, который вы получили
const VERSION = '5.101'; //ваша версия используемого api

简单的用于群组和社区的回调机器人

require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
$vk = vk_api::create(VK_KEY, VERSION)->setConfirm(CONFIRM_STR);
$data = $vk->initVars($id, $message, $payload, $user_id, $type); //инициализация переменных
if($type == 'message_new')
  $vk->reply($message);

简单的用于群组和社区的回调机器人

require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
$vk = vk_api::create(VK_KEY, VERSION)->setConfirm(CONFIRM_STR);
$vk->debug();
$data = $vk->initVars($id, $message, $payload, $user_id, $type); //инициализация переменных
$info_btn = $vk->buttonText('Информация', 'blue', ['command' => 'info']); //создание кнопки
if ($payload) {
    if($payload['command'] == 'info')
        $vk->reply('Тебя зовут %a_full%'); //отвечает пользователю или в беседу
} else
    $vk->sendButton($id, 'Видишь кнопку? Нажми на нее!', [[$info_btn]]); //отправляем клавиатуру с сообщением

简单的用户长轮询机器人

require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\LongPoll;
$vk = vk_api::create('login', 'password', VERSION);//или используйте токен вместо лог/пас
$vk = new LongPoll($vk);
$vk->listen(function()use($vk){ //longpoll для пользователя
    $vk->on('message_new', function($data)use($vk) { //обработка входящих сообщений
        $vk->initVars($id, $message, $payload, $user_id, $type);
        $vk->reply($message);
    });
});

简单的社区长轮询机器人

require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\LongPoll;
$vk = vk_api::create(VK_KEY, '5.101');
$vk = new LongPoll($vk);
$vk->listen(function($data)use($vk){ //в $data содержится все данные
    $vk->initVars($id, $message, $payload, $user_id, $type);
    $vk->reply($message);
});

回调 + 执行

当回调脚本在执行过程中多次调用 API,而你需要节省请求以避免超过限制时(高负载机器人)使用。

require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\Execute;
$vk = vk_api::create(VK_KEY, VERSION)->setConfirm(CONFIRM_STR);
$vk = new Execute($vk);
$vk->debug();
$data = $vk->initVars($id, $message, $payload, $user_id, $type); //инициализация переменных
$vk->reply($message); //отвечает пользователю или в беседу

长轮询 + 执行

对于高负载机器人来说,这是最佳组合。但如果你正在创建高负载机器人,最好看看 NodeJS,因为它通过异步和多线程处理得更好。

require_once('vendor/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\LongPoll;
use DigitalStar\vk_api\Execute;
$vk = vk_api::create(VK_KEY, '5.95');
$vk = new Execute($vk);
$vk = new LongPoll($vk);
$vk->listen(function($data)use($vk){ //в $data содержится все данные события, можно убрать, если не нужен
    $vk->initVars($id, $message, $payload, $user_id, $type); //инициализация переменных
    $vk->reply($message);
});

项目发展计划

  • 检查秘密词的方法
  • 流式 API
  • 在机器人中方便处理命令的模块
  • 方便编写多级按钮机器人的模块
  • 在 sendImage 中发送图片链接以发送图片
  • 检查秘密词的方法
  • 更方便的网站文档
  • 完全重写 3.0 版本库
  • 带有网站副本的移动应用程序,用于离线查看

遥远的未来(1年内)

  • 处理音频
  • 处理故事
  • 处理主要支付系统的模块
  • 社区动态封面(可能)

支持项目