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


Widget Σχολίων

<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 key είναι απαραίτητο για ασφαλές SSO — χρησιμοποιείται για την υπογραφή του SSO payload.

Config-Based Mapping

Στο 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'),
],

Interface-Based Mapping

Για μεγαλύτερο έλεγχο, υλοποιήστε το interface 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'),
        ];
    }
}

Όταν το interface υλοποιείται, έχει προτεραιότητα σε σχέση με την αντιστοίχιση που βασίζεται στο config.

SSO in Blade

Όταν το SSO είναι ενεργοποιημένο, το component <x-fastcomments /> εισάγει αυτόματα τα δεδομένα SSO για τον αυθεντικοποιημένο χρήστη.

Πρόσβαση στο API Internal Link

Μέσω Facade

use FastComments\Laravel\Facades\FastComments;

// Admin 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_id FASTCOMMENTS_TENANT_ID '' Το 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 [] Προεπιλεγμένες επιλογές διαμόρφωσης widget
---

Προσαρμογή προβολών Internal Link


Για να προσαρμόσετε το πρότυπο Blade:

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

Τα πρότυπα θα δημοσιευτούν στο resources/views/vendor/fastcomments/.

Χρειάζετε βοήθεια;

If you encounter any issues or have questions about the Laravel Package, please:

Συνεισφορά

Οι συνεισφορές είναι ευπρόσδεκτες! Παρακαλώ επισκεφθείτε το αποθετήριο στο GitHub για οδηγίες σχετικά με τις συνεισφορές.