m-vo / contao-facebook-import

Facebook posts and events for Contao Open Source CMS
Other
11 stars 5 forks source link

contao-facebook-import

This bundle enables to use Facebook's events and posts as native elements in Contao Open Source CMS. The following things are available:

Version 3

This is version 3 of the bundle - to see a list of changes and information on how to migrate from older versions please refer to the changelog.

PHP 8

Unfortunately, there is no official release of facebook/graph-sdk with support for PHP 8. You can, however, require the third-party fork nickdnk/graph-sdk in your application, which added support for PHP 8 and acts as a drop-in-replacement. You might want to do this before installing this bundle, so that the installation won't fail.

$ composer require nickdnk/graph-sdk

Setup

Step 1: Download (& register) the Bundle

Require the bundle as a dependency and register the MvoContaoFacebookImportBundle in your AppKernel (automatically done in the Contao Managed Edition):

$ composer require mvo/contao-facebook-import

Update your database.

Step 2: Configure (optional)

You can edit the configuration by setting the following parameters in your config.yml - the following values are the defaults:

mvo_contao_facebook_import:
    request_limit_per_node: 150
    request_window_per_node: 3600
    max_execution_time: 16
    trigger_type: 'internal'

Its highly recommended to use a distinct cron job and use the route. If you use the internal variant make sure you have disabled the periodic command scheduler and you are still triggering the _contao/cron route with a cron job. Otherwise long latency might occur when the synchronizer is running.

Step 3: Use the Bundle

Facebook GraphAPI

Create one or more Facebook nodes in the backend. To make your application able to connect to Facebook's GraphAPI, you need to create a at least one Facebook app and access token.

The latter you can generate doing the following steps:

To test your token and see if it won't expire, you can enter it into the Access Token Debugger and look for the expiry date.

Synchronization

If you enable auto synchronization, you're good to go. To manually import posts and events, see what got imported or hide certain elements head to the respective posts / events child views of your Facebook node.

Images are being imported separately from the textual contents in the background. Their import happens in chunks and is prioritized over updating the textual content. You'll see images appearing in the elements as soon they have been scraped.

Frontend

To display the data in the frontend use the Facebook Post List and Facebook Event List content elements.