
语言 🇨🇳 简体中文
🇺🇸
English
🇧🇬
Български
🇨🇳
简体中文
🇹🇼
繁體中文
🇭🇷
Hrvatski
🇩🇰
Dansk
🇳🇱
Nederlands
🇺🇸
English (US)
🇨🇦
Français (Canada)
🇫🇷
Français (France)
🇩🇪
Deutsch
🇨🇾
Ελληνικά (Κύπρος)
🇬🇷
Ελληνικά
🇮🇱
עברית
🇮🇹
Italiano
🇯🇵
日本語
🇰🇷
한국어
🇵🇱
Polski
🇧🇷
Português (Brasil)
🇷🇺
Русский
🇺🇦
Русский (Украина)
🇧🇦
Српски (БиХ)
🇷🇸
Srpski (Latinica)
🇲🇪
Српски (Црна Гора)
🇷🇸
Српски
🇸🇮
Slovenščina
🇪🇸
Español
🇺🇦
Українська
🇹🇷
Türkçe
文档
入门
API 参考
Add Comments to Your Laravel App
这是 FastComments 的官方 Laravel 包。
为您的 Laravel 应用添加实时评论、聊天等功能。
仓库
安装 
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 组件 
评论小部件
<x-fastcomments />
{{-- With options --}}
<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" />
单点登录 
在你的 .env 中启用 SSO:
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'),
],
基于接口的映射
若需更精细的控制,在你的 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 访问 
通过 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);
通过依赖注入
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');
// ...
}
}
配置参考 
| 键 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|
tenant_id |
FASTCOMMENTS_TENANT_ID |
'' |
您的 FastComments 租户 ID |
api_key |
FASTCOMMENTS_API_KEY |
'' |
用于服务器端调用的 API 密钥 |
region |
FASTCOMMENTS_REGION |
null |
null (US) 或 '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 |
— | [] |
默认 widget 配置选项 |
| --- |
需要帮助?
如果您在使用 Laravel 包时遇到任何问题或有疑问,请:
贡献
欢迎贡献!请访问 GitHub 仓库 查看贡献指南。