FastComments.com

Додайте коментарі до вашого Laravel застосунку

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

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

Репозиторій

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

Агенти кодування ШІ Internal Link

skills.sh

Надайте вашому агенту коду контекст FastComments, який йому потрібен — віджети, конфігурація, Secure SSO, REST API та SDK:

npx skills add fastcomments/skills

Працює з Claude Code, Codex, Cursor, Copilot, Gemini та будь‑яким іншим агентом, який підтримує skills CLI.

Вимоги 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_idFASTCOMMENTS_TENANT_ID''Ідентифікатор вашого орендаря FastComments
api_keyFASTCOMMENTS_API_KEY''API-ключ для серверних викликів
regionFASTCOMMENTS_REGIONnullnull (США) або 'eu'
sso.enabledFASTCOMMENTS_SSO_ENABLEDfalseУвімкнути SSO
sso.modeFASTCOMMENTS_SSO_MODE'secure''secure' або 'simple'
sso.login_urlFASTCOMMENTS_SSO_LOGIN_URLnullURL входу (за замовчуванням використовується маршрут Laravel)
sso.logout_urlFASTCOMMENTS_SSO_LOGOUT_URLnullURL виходу (за замовчуванням використовується маршрут Laravel)
widget_defaults[]Параметри конфігурації віджету за замовчуванням

Налаштування виглядів Internal Link


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

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

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


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

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

Внески

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