tedakis/pumble-sdk-php
Composer 安装命令:
composer require tedakis/pumble-sdk-php
包简介
PHP SDK for Pumble API with Laravel support
README 文档
README
A modern PHP SDK for the Pumble API with first-class Laravel support. Read channel messages, send messages, manage channels, and more.
Features
- Read channel messages with pagination support
- Send messages and replies
- Manage channels (create, list)
- User management (list users)
- Add reactions to messages
- Search and filter messages
- Type-safe DTOs (Data Transfer Objects)
- Laravel service provider and facade
- Comprehensive error handling
Requirements
- PHP 8.1 or higher
- Laravel 10.x or 11.x
Installation
Install the package via Composer:
composer require tedakis/pumble-sdk-php
Laravel Auto-Discovery
The package will automatically register its service provider and facade.
Publish Configuration (Optional)
php artisan vendor:publish --tag=pumble-config
This will create a config/pumble.php file.
Configuration
Get Your API Key
- Open Pumble
- Run the command:
/api-keys generate - Copy the API key from the ephemeral message
Add to .env
PUMBLE_API_KEY=your-api-key-here
Usage
Using the Facade (Laravel)
use Tedakis\PumbleSDK\Facades\Pumble; // Get messages from a channel $messages = Pumble::getAllMessages('general'); foreach ($messages as $message) { echo "{$message->userId}: {$message->text}\n"; } // Send a message Pumble::sendMessage('general', 'Hello from Laravel!'); // Search messages $results = Pumble::searchMessages('general', 'important'); // List all channels $channels = Pumble::getChannels();
Using Dependency Injection (Laravel)
use Tedakis\PumbleSDK\PumbleService; class MessageController extends Controller { public function __construct( private PumbleService $pumble ) {} public function index(string $channel) { $messages = $this->pumble->getAllMessages($channel); return view('messages.index', compact('messages')); } } ## API Reference ### Reading Messages #### Get Messages with Pagination ```php // Get first page $collection = Pumble::getMessages('general', limit: 50); foreach ($collection->getMessages() as $message) { // Process message } // Get next page if available if ($collection->hasMore()) { $nextPage = Pumble::getMessages('general', cursor: $collection->getCursor()); }
Get All Messages (Auto-pagination)
// Automatically handles pagination $allMessages = Pumble::getAllMessages('general');
Search Messages
$results = Pumble::searchMessages('general', 'search term');
Get Messages by User
$userMessages = Pumble::getMessagesByUser('general', 'user-id-123');
Channels
// List all channels $channels = Pumble::getChannels(); // Create a new channel Pumble::createChannel('new-channel', isPrivate: false);
Users
// List all users $users = Pumble::getUsers(); foreach ($users as $user) { echo "{$user->name} ({$user->email})\n"; }
Sending Messages
// Send as bot (default) Pumble::sendMessage('general', 'Hello!'); // Send as your personal account Pumble::sendMessage('general', 'Hello!', asBot: false); // Reply to a message Pumble::replyToMessage('general', 'message-id', 'This is a reply');
Reactions
// Add a reaction Pumble::addReaction('general', 'message-id', 'thumbsup'); Pumble::addReaction('general', 'message-id', 'heart');
Delete Messages
Pumble::deleteMessage('general', 'message-id');
Data Transfer Objects
Message
$message->id // Message ID $message->text // Message content $message->channelId // Channel ID $message->userId // User ID $message->createdAt // Creation timestamp $message->updatedAt // Update timestamp (nullable) $message->reactions // Array of reactions (nullable) $message->threadId // Thread ID (nullable) $message->mentions // Mentioned users (nullable) $message->attachments // Message attachments (nullable)
Channel
$channel->id // Channel ID $channel->name // Channel name $channel->isPrivate // Is private channel $channel->description // Description (nullable) $channel->createdAt // Creation timestamp (nullable) $channel->members // Member IDs (nullable)
User
$user->id // User ID $user->name // Display name $user->email // Email address $user->avatarUrl // Avatar URL (nullable) $user->isBot // Is bot account (nullable) $user->status // User status (nullable)
Advanced Examples
Export Messages to JSON
$messages = Pumble::getAllMessages('general'); $exported = $messages->map(fn($m) => [ 'id' => $m->id, 'text' => $m->text, 'user' => $m->userId, 'timestamp' => $m->createdAt, ])->toArray(); file_put_contents('messages.json', json_encode($exported, JSON_PRETTY_PRINT));
Find Most Active Users
$messages = Pumble::getAllMessages('general'); $activity = $messages->groupBy('userId') ->map(fn($msgs) => $msgs->count()) ->sortDesc(); foreach ($activity as $userId => $count) { echo "User {$userId}: {$count} messages\n"; }
Message Statistics
$messages = Pumble::getAllMessages('general'); $stats = [ 'total' => $messages->count(), 'with_reactions' => $messages->filter(fn($m) => !empty($m->reactions))->count(), 'in_threads' => $messages->filter(fn($m) => $m->threadId !== null)->count(), ];
Error Handling
use Tedakis\PumbleSDK\Exceptions\PumbleException; try { $messages = Pumble::getMessages('general'); } catch (PumbleException $e) { Log::error('Pumble API Error', [ 'message' => $e->getMessage(), 'code' => $e->getCode(), ]); }
Testing
composer test
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
tedakis/pumble-sdk-php 适用场景与选型建议
tedakis/pumble-sdk-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 10 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「sdk」 「messaging」 「chat」 「laravel」 「pumble」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 tedakis/pumble-sdk-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tedakis/pumble-sdk-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 tedakis/pumble-sdk-php 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PSR-7 compatible library for making CRUD API endpoints
PHP SDK for Mobile Message SMS API
Azure service bus Transport
Official PHP client for NATS messaging system
Laravel / Lumen package for Firebase Cloud Messaging
Ozioma for PHP library helps to make API calls to Ozioma Cloud Messaging and Communications Platform for birthday contact and sms newsletter subscription.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-26