FastComments.com

Add Comments to Your Laravel App

これは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', // dot notation supported
    ],
    '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が有効な場合、コンポーネントは認証済みユーザーの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 テナント ID
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 パッケージに関して問題が発生したり質問がある場合は、次のいずれかを行ってください:

貢献

貢献は歓迎します!貢献ガイドラインについては GitHub リポジトリ をご覧ください。