FastComments.com

Προσθέστε σχόλια στην εφαρμογή Laravel σας

Αυτό είναι το επίσημο πακέτο 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 />

\{{-- 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" />

SSO (Ενιαία Σύνδεση) Internal Link

Ενεργοποιήστε το SSO στο αρχείο .env:

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

Το API key απαιτείται για το ασφαλές SSO — χρησιμοποιείται για την υπογραφή του payload του SSO.

Χαρτογράφηση με βάση το config

Στο config/fastcomments.php, αντιστοιχίστε τα πεδία του FastComments με τα attributes του μοντέλου User σας:

'sso' => [
    'enabled' => true,
    'mode' => 'secure',
    'user_map' => [
        'id' => 'id',
        'email' => 'email',
        'username' => 'name',
        'avatar' => 'profile.avatar_url', // υποστηρίζεται σημειογραφία με τελείες (dot notation)
    ],
    'is_admin' => fn ($user) => $user->hasRole('admin'),
    'is_moderator' => fn ($user) => $user->hasRole('moderator'),
],

Χαρτογράφηση βάσει Interface

Για περισσότερο έλεγχο, υλοποιήστε το 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 στο Blade

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

Πρόσβαση API Internal Link

Μέσω Facade

use FastComments\Laravel\Facades\FastComments;

// Admin API (απαιτεί κλειδί API)
$comments = FastComments::admin()->getComments('tenant-id');

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

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

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

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

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

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

Εάν αντιμετωπίσετε οποιοδήποτε πρόβλημα ή έχετε ερωτήσεις σχετικά με το πακέτο Laravel, παρακαλούμε:

Συνεισφορές

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