# 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.