catferq/reactphp-vk

此包的最新版本(v2.0.1)没有可用的许可信息。

基于 ReactPHP 的异步 VK API 客户端

v2.0.1 2020-09-21 18:06 UTC

This package is not auto-updated.

Last update: 2024-10-01 13:36:29 UTC


README

基于 ReactPHP 的异步 VK API 客户端

composer require catferq/reactphp-vk

这是一个实验性库。目前不建议在实际项目中使用。
如果你熟悉 ReactPHP,我愿意接受你关于错误和争议点的反馈。
有想法?请发邮件至 私信

目前实现了以下功能

  • 通过生成的 SDK 调用 API(5.122)
  • 直接查询 API
  • 系统节流,以避免过载和错误 #6(每秒过多请求)
  • LongPoll 处理器
  • 各种 Enum
  • 还生成了元数据,以便在直接请求时提供一些提示

通过 SDK 发送常规请求的示例

<?php

use ReactPHPVK\Client\AVKClient;
use ReactPHPVK\LongPoll\LongPollClient;
use React\EventLoop\Factory;

require_once __DIR__ . '/vendor/autoload.php';

$accessToken = 'f1a6c1f8f0f1a21f8f0f1a2c6b1ba6c1f8f0f1a2c6b1b11e6';

$loop = Factory::create();
$avk = new AVKClient($loop, $accessToken);

$method = $avk->messages()->send();
$method->setMessage('Hello world');
$method->setUserId(283776198);
$method->execute()->then(
    fn ($response) => var_dump($response)
);

$loop->run();

处理 LP 的示例

<?php

use ReactPHPVK\Client\AVKClient;
use ReactPHPVK\LongPoll\LongPollClient;
use React\EventLoop\Factory;

require_once __DIR__ . '/vendor/autoload.php';

$accessToken = 'f1a6c1f8f0f1a21f8f0f1a2c6b1ba6c1f8f0f1a2c6b1b11e6';
$groupId = 185142265;

$loop = Factory::create();
$avk = new AVKClient($loop, $accessToken);
$lp = new LongPollClient($avk, $groupId);

$lp->handle(
    fn ($update) => var_dump($update) // выведет событие (неожиданно, согласен)
);

$loop->run();