FastComments.com

Laravel 앱에 댓글 추가

이것은 FastComments의 공식 Laravel 패키지입니다.

라이브 댓글, 채팅 등 기능을 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

EU 리전의 경우:

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


당신의 .env에서 SSO를 활성화하세요:

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

보안 SSO에는 API 키가 필요합니다 — 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'),
],

인터페이스 기반 매핑

더 세밀한 제어를 위해 User 모델에 MapsToFastCommentsUser 인터페이스를 구현하세요:

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'),
        ];
    }
}

인터페이스가 구현되어 있으면 구성 기반 매핑보다 우선합니다.

Blade에서의 SSO

SSO가 활성화되면 <x-fastcomments /> 컴포넌트가 인증된 사용자에 대한 SSO 데이터를 자동으로 주입합니다.

API 액세스 Internal Link

퍼사드(Facade)를 통한 사용

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);

의존성 주입(Dependency Injection)을 통한 사용

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 테넌트 ID
api_keyFASTCOMMENTS_API_KEY''서버 측 호출용 API 키
regionFASTCOMMENTS_REGIONnullnull (미국) 또는 'eu'
sso.enabledFASTCOMMENTS_SSO_ENABLEDfalseSSO 활성화
sso.modeFASTCOMMENTS_SSO_MODE'secure''secure' 또는 'simple'
sso.login_urlFASTCOMMENTS_SSO_LOGIN_URLnull로그인 URL (Laravel 라우트로 대체됨)
sso.logout_urlFASTCOMMENTS_SSO_LOGOUT_URLnull로그아웃 URL (Laravel 라우트로 대체됨)
widget_defaults[]기본 위젯 구성 옵션

뷰 사용자화 Internal Link


Blade 템플릿을 사용자 지정하려면:

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

템플릿은 resources/views/vendor/fastcomments/에 게시됩니다.

도움이 필요하신가요?

Laravel 패키지에 관해 문제가 발생하거나 질문이 있는 경우, 다음을 이용해 주세요:

기여

기여를 환영합니다! 기여 지침은 GitHub 저장소를 방문하세요.