承接 ctapu4ok/vk-messenger-sdk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ctapu4ok/vk-messenger-sdk

最新稳定版本:v1.1.1

Composer 安装命令:

composer create-project ctapu4ok/vk-messenger-sdk

包简介

PHP implementation of VK Messenger LongPoll protocol.

README 文档

README

Instructions in English

VK Messenger SDK представляет собой систему, которая позволяет взаимодействовать с API ВКонтакте через LongPoll в асинхронном режиме.

LongPoll - это механизм, предоставляемый API ВКонтакте, который позволяет получать обновления из социальной сети в режиме реального времени.

Для реализации асинхронного режима работы проект использует механизм обратных вызовов (callback / event loop). Когда происходит новое событие в системе ВКонтакте, обработчик получает его и вызывает соответствующий обратный вызов, который пользователь предварительно определил. Таким образом, пользователь может создать свою логику обработки полученных событий.

Библиотека PHP для взаимодействия с VK API, включающая LongPoll Server и API методы

Используемая версия ВК API version 5.81

Packagist

1. Предусловия

  • PHP 8.2^

2. Установка

The VK Messenger SDK можно установить с помощью Composer, выполнив следующую команду:

composer require ctapu4ok/vk-messenger-sdk

3. Примеры

(постепенно пополняется)

Пример простого бота

1. Сообщения

  1. Отправление сообщения с кнопками
  2. Имитация набора текста ботом
  3. Отправка сообщений с вложенными фото

2. Группы

  1. Получения информации о группе
  2. Редактирование группы

3. Остальное

  1. Выполнение SQL запроса
  2. Выполнение транзакций
  3. Пример с модулем Logger

Больше примеров

4. Пример бота

<?php declare(strict_types=1);

if (file_exists('vendor/autoload.php')) {
    require_once 'vendor/autoload.php';
}

use ctapu4ok\VkMessengerSdk\EventHandler;
use ctapu4ok\VkMessengerSdk\Logger;
use ctapu4ok\VkMessengerSdk\Settings;

enum Params
{
    public const API_HASH = 'vk1.a.Qyw6zef4YQZmosPX5J.....';
    public const GROUP_ID = 12345678;
    public const CONFIRM_STRING = 'c683e9eb12cebb65ce.....';

    public const VERSION = '5.81';
}

class MessengerEvent extends EventHandler
{
    public function onStart(): void
    {
        $this->getAPI()->logger('The event handler was initialized');
    }
    public function messageEvent(int $group_id, ?string $secret, array $object): void
    {
        $this->getAPI()->logger([
            'New message event received', $object
        ], Logger::LOGGER_CALLABLE);
    }
    public function messageNew(int $group_id, ?string $secret, array $object): void
    {
        $this->getAPI()->logger([
            'New message received: ', $object
        ], Logger::LOGGER_CALLABLE);

        /**
         * @var $this->getVk() The main VK API methods src/API/Actions
         */
        $msg_id = $this->getVk()->messages()->send([
            'user_id' => $object['message']['from_id'],
            'random_id' => floor(microtime(true) * 1000),
            'peer_id' => $object['message']['peer_id'],
            'message' => 'Hello World!'
        ]);

        $this->getAPI()->logger([
            'Getting Message ID: ', $msg_id
        ], Logger::LOGGER_CALLABLE);
    }

    public function messageTypingState(int $group_id, ?string $secret, array $object): void
    {
        $this->getAPI()->logger([
            'The user started typing a message', $object
        ], Logger::LOGGER_CALLABLE);
    }
    
    /**
    * Cron example  
    */ 
    #[Cron(period: 5)]
    public function testingCron5()
    {
        $this->getAPI()->logger([
            'THIS IS CRON 5!!!!!!'
        ], Logger::LOGGER_CALLABLE);
    }

    #[Cron(period: 1)]
    public function testingSome1()
    {
        $this->getAPI()->logger([
            'THIS IS CRON 1.0!!!!!!'
        ], Logger::LOGGER_CALLABLE);
    }
}

$Settings = new Settings();

$Settings->getAppInfo()->setApiHash(Params::API_HASH);
$Settings->getAppInfo()->setGroupId(Params::GROUP_ID);
$Settings->getAppInfo()->setConfirmString(Params::CONFIRM_STRING);
$Settings->getAppInfo()->setApiVersion(Params::VERSION);

// we say to output logs to a file (without console)
//$Settings->getLogger()
//    ->setType(Logger::LOGGER_FILE)
//    ->setExtra('log.file')
//    ->setMaxSize(50*1024*1024);
// Database settings
//$Settings->setDb(
//    (new Settings\Database\Mysql())
//    ->setUri('127.0.0.1:3306')
//    ->setDatabase('vk_messenger')
//    ->setUsername('root')
//    ->setPassword('root')
//);

MessengerEvent::loop($Settings);

ctapu4ok/vk-messenger-sdk 适用场景与选型建议

ctapu4ok/vk-messenger-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 19 次下载、GitHub Stars 达 3, 最近一次更新时间为 2023 年 07 月 18 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「client」 「sdk」 「bot」 「vk」 「Messenger」 「longpoll」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 ctapu4ok/vk-messenger-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 ctapu4ok/vk-messenger-sdk 我们能提供哪些服务?
定制开发 / 二次开发

基于 ctapu4ok/vk-messenger-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 19
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 15
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: AGPL-3.0-only
  • 更新时间: 2023-07-18