FastComments.com

Add Comments to Your Laravel App

Це офіційний пакет Laravel для FastComments.

Додайте живі коментарі, чат та інші можливості до вашого додатку Laravel.

Репозиторій

Переглянути на GitHub

Вимоги Internal Link


  • PHP 8.1+
  • Laravel 10, 11, або 12

Встановлення Internal Link

composer require fastcomments/laravel

Опублікуйте файл конфігурації:

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

Додайте свої облікові дані до .env:

FASTCOMMENTS_TENANT_ID=your-tenant-id
FASTCOMMENTS_API_KEY=your-api-key

Для регіону ЄС:

FASTCOMMENTS_REGION=eu

Компоненти Blade Internal Link

Віджет коментарів

<x-fastcomments />

{{-- З опціями --}}
<x-fastcomments
    url-id="my-page-id"
    url="https://example.com/my-page"
    locale="en_us"
    :has-dark-background="true"
    default-sort-direction="MR"
/>

Живий чат

<x-fastcomments-live-chat url-id="chat-room-1" />

Кількість коментарів

<x-fastcomments-comment-count url-id="my-page-id" />
<x-fastcomments-comment-count url-id="my-page-id" :number-only="true" />

Єдиний вхід (SSO) Internal Link

Увімкніть SSO у вашому .env:

FASTCOMMENTS_API_KEY=your-api-key
FASTCOMMENTS_SSO_ENABLED=true
FASTCOMMENTS_SSO_MODE=secure

API-ключ потрібен для режиму secure SSO — він використовується для підписування SSO-даних.

Відображення на основі конфігурації

У файлі config/fastcomments.php зіставте поля FastComments з атрибутами вашої моделі User:

'sso' => [
    'enabled' => true,
    'mode' => 'secure',
    'user_map' => [
        'id' => 'id',
        'email' => 'email',
        'username' => 'name',
        'avatar' => 'profile.avatar_url', // підтримується точкова нотація
    ],
    'is_admin' => fn ($user) => $user->hasRole('admin'),
    'is_moderator' => fn ($user) => $user->hasRole('moderator'),
],

Відображення на основі інтерфейсу

Щоб мати більший контроль, реалізуйте інтерфейс MapsToFastCommentsUser у вашій моделі User:

use FastComments\Laravel\SSO\Contracts\MapsToFastCommentsUser;

class User extends Authenticatable implements MapsToFastCommentsUser
{
    public function toFastCommentsUserData(): array
    {
        return [
            'id' => (string) $this->id,
            'email' => $this->email,
            'username' => $this->display_name,
            'avatar' => $this->avatar_url,
            'is_admin' => $this->hasRole('admin'),
        ];
    }
}

Коли інтерфейс реалізовано, він має пріоритет над відображенням, заданим у конфігурації.

SSO у Blade

Коли SSO увімкнено, компонент <x-fastcomments /> автоматично додає SSO-дані для автентифікованого користувача.

Доступ до API Internal Link


Через фасад

use FastComments\Laravel\Facades\FastComments;

// Адмінський API (потребує API-ключ)
$comments = FastComments::admin()->getComments('tenant-id');

// Публічний API
$comments = FastComments::publicApi()->getCommentsPublic('tenant-id', 'url-id');

// SSO
$ssoPayload = FastComments::sso()->forWidget();
$token = FastComments::sso()->tokenFor($user);

Через ін'єкцію залежностей

use FastComments\Laravel\FastCommentsManager;

class CommentController extends Controller
{
    public function index(FastCommentsManager $fc)
    {
        $comments = $fc->admin()->getComments($fc->tenantId());
        // ...
    }
}

Прямий доступ до SDK

use FastComments\Client\Api\DefaultApi;

class CommentController extends Controller
{
    public function index(DefaultApi $api)
    {
        $comments = $api->getComments('tenant-id');
        // ...
    }
}

Довідник конфігурації Internal Link


Ключ Змінна середовища За замовчуванням Опис
tenant_id FASTCOMMENTS_TENANT_ID '' Ідентифікатор вашого орендаря FastComments
api_key FASTCOMMENTS_API_KEY '' API-ключ для серверних викликів
region FASTCOMMENTS_REGION null null (США) або 'eu'
sso.enabled FASTCOMMENTS_SSO_ENABLED false Увімкнути SSO
sso.mode FASTCOMMENTS_SSO_MODE 'secure' 'secure' або 'simple'
sso.login_url FASTCOMMENTS_SSO_LOGIN_URL null URL входу (за замовчуванням використовується маршрут Laravel)
sso.logout_url FASTCOMMENTS_SSO_LOGOUT_URL null URL виходу (за замовчуванням використовується маршрут Laravel)
widget_defaults [] Параметри конфігурації віджету за замовчуванням
---

Налаштування подань Internal Link


Щоб налаштувати шаблон Blade:

php artisan vendor:publish --tag=fastcomments-views

Шаблони будуть опубліковані в resources/views/vendor/fastcomments/.


Потрібна допомога?

Якщо ви зіткнулися з будь-якими проблемами або маєте питання щодо Laravel Package, будь ласка:

Внески

Внески вітаються! Будь ласка, відвідайте репозиторій GitHub для інструкцій щодо внеску.