# FacebookPoster Notification Channel For Laravel

Latest Version on Packagist (opens new window) Software License (opens new window) Build Status StyleCI (opens new window) Total Downloads (opens new window)

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 (opens new window) 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 (opens new window) for more information what has changed recently.

# Testing

$ composer test

# Contributing

Please see CONTRIBUTING (opens new window) for details.

# Credits

# License

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