Search by

hr-d / alocom

hr-d

Library for interacting with the Alocom service, compatible with PHP 8.2+ and Laravel 12.

Package info

github.com/hr-d/alocom

pkg:composer/hr-d/alocom

Statistics

Installs: 115

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v3.0 2026-10-31 08:49 UTC

This package is auto-updated.

Last update: 2026-10-31 08:58:52 UTC


README

کتابخانه‌ی ارتباط با سرویس Alocom، سازگار با PHP 8.2 به بالا و لاراول ۱۰ تا ۱۲.

نیازمندی‌ها

  • PHP ^8.2
  • Guzzle ^7.9
  • Laravel ^10 | ^11 | ^12 (برای استفاده از سرویس‌پراوایدر و فاساد)

نصب

composer require hr-d/alocom

در لاراول، سرویس‌پراوایدر و فاساد به‌صورت خودکار (Package Discovery) ثبت می‌شوند.

تنظیمات

متغیرهای زیر را به .env اضافه کنید:

ALOCOM_BASE_API_URL=https://your-alocom-domain.com
ALOCOM_USERNAME=your-username
ALOCOM_PASSWORD=your-password

# اختیاری
ALOCOM_TIMEOUT=30
ALOCOM_VERIFY_SSL=false

در صورت نیاز به تغییر تنظیمات پیش‌فرض:

php artisan vendor:publish --tag=alocom-config

استفاده در لاراول ۱۲

ساخت / ویرایش اتاق

use HRD\Alocom\Facades\Alocom;

$room = Alocom::room()
    ->set_title('کلاس ریاضی')
    ->set_agentServiceId(12)
    ->set_slug('math-class')
    ->set_maxUser(50)
    ->set_language('fa')
    ->save();

echo $room->get_id();
echo $room->url();

برای ویرایش کافی است ابتدا set_id() را صدا بزنید و سپس save() کنید:

Alocom::room()
    ->set_id($roomId)
    ->set_title('عنوان جدید')
    ->save();

دریافت و حذف اتاق

$room = Alocom::room()->set_id($roomId)->get();

Alocom::room()->set_id($roomId)->delete();

فایل‌های ضبط‌شده

$files = Alocom::room()
    ->set_id($roomId)
    ->recordingFiles($skip = 0, $take = 100);

افزودن / حذف کاربر

use HRD\Alocom\Facades\Alocom;
use HRD\Alocom\Models\Authority;

$user = Alocom::user()
    ->set_name('علی')
    ->set_surname('رضایی')
    ->set_username('ali.rezaei')
    ->set_password('secret')
    ->set_role(Authority::ACCESS_LEVEL_ATTENDEE)
    ->attach($eventId);

echo $user->loginUrl();

Alocom::user()
    ->set_userId($user->get_userId())
    ->detach($eventId);

detach() در صورت خالی بودن userId استثنای InvalidArgumentException پرتاب می‌کند.

استفاده بدون لاراول

در محیط‌های غیر لاراولی، تنظیمات از متغیرهای محیطی خوانده می‌شوند:

use HRD\Alocom\Collection\RoomCollection;

$room = (new RoomCollection())
    ->set_title('کلاس تست')
    ->set_agentServiceId(1)
    ->save();

یا می‌توانید مقادیر را مستقیماً به Request بدهید:

use HRD\Alocom\Collection\RoomCollection;
use HRD\Alocom\HttpClients\Request;

$request = new Request(
    null,
    'https://your-alocom-domain.com',
    'username',
    'password'
);

$room = new RoomCollection($request);

رفتار HTTP

  • توکن احراز هویت پس از اولین درخواست کش می‌شود.
  • در صورت دریافت خطای 401، توکن یک‌بار تازه‌سازی و درخواست تکرار می‌شود.
  • برای درخواست‌های GET، HEAD و DELETE پارامترها به‌صورت query string ارسال می‌شوند.
  • پاسخ‌های JSON به‌صورت آرایه برمی‌گردند.

لایسنس

MIT