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 />

{{-- 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_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/.

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

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

Συνεισφορές

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