/facebook-poster

Use notifications to create posts on Facebook

Primary LanguagePHPMIT LicenseMIT

FacebookPoster Notification Channel For Laravel

Latest Version on Packagist Software License Build Status StyleCI Total Downloads

This package makes it easy to post to Facebook using Laravel notification channels.

Contents

Installation

You can install this package via Composer:

composer require laravel-notification-channels/facebook-poster

Configuration

You'll need to get the Facebook Page ID as well as a page access token with the pages_read_engagement and pages_manage_post permissions. You will need to go through App Review in order to use these permissions. Then, add the configuration to your config/services.php file:

...
'facebook_poster' => [
    'page_id' => env('FACEBOOK_PAGE_ID'),
    'access_token' => env('FACEBOOK_ACCESS_TOKEN'),
],

Usage

Follow Laravel's documentation to add the channel to your Notification class.

Publish Facebook post

use NotificationChannels\FacebookPoster\FacebookPosterChannel;
use NotificationChannels\FacebookPoster\FacebookPosterPost;

class NewsWasPublished extends Notification
{

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return [FacebookPosterChannel::class];
    }

    /**
     * Get the Facebook post representation of the notification.
     *
     * @param  mixed  $notifiable.
     * @return \NotificationChannels\FacebookPoster\FacebookPosterPost
     */
    public function toFacebookPoster($notifiable) {
        return new FacebookPosterPost('Laravel notifications are awesome!');
    }
}

Publish Facebook post with link

It is possible to publish link with your post too. You just have to pass the URL to the withLink method.

public function toFacebookPoster($notifiable) {
    return (new FacebookPosterPost('Laravel notifications are awesome!'))
        ->withLink('https://laravel.com');
}

Publish Facebook post with custom configuration

You can implement routeNotificationForFacebookPoster() on your notifiable class in order to provide custom configuration.

public function routeNotificationForFacebookPoster(): array
{
    return [
        'page_id' => 'customPageId',
        'access_token' => 'customAccessToken',
    ];
}

Changelog

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.