DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

Facebook Stream

A TYPO3 extension to crawl the data, posts, events and images from a Facebook Page and saves it to the Database.

The posts are used like news articles from the news extension.

It provides different views for the list/show action (article styled, list styled).

Saves the Images as FAL, so you can also set titles, alternatives, ...

Provides a scheduler task so the pages are crawled each day.

Issue Tracking at https://forge.typo3.org/projects/extension-facebook_stream.


Configuration

Please include the Plugin in you Main Template and then change to the Constant Editor.

Select PLUGIN.TX_FACEBOOKSTREAM_PI1

The plugin requires your storage PID, app ID and app secret.

You can get an app ID and app secret when you create a new facebook app at https://developers.facebook.com/.

Create a facebook app

Firstly you need to register with your facebook account.

You are now registered as a facebook developer, that means you can now create facebook apps.

Add a new app via the "My Apps" button on the top right.

Choose a Website App and skip the quickstart (top right in the picture).

Now you have a facebook app and can copy the App Id and the App Secret into the Constants of the Facebook Stream Plugin.


Backend Plugin

Create and import a facebook page by inserting its name or id in the insert field.

Below are all created facebook page listed, you have created already.

Get the name or id of your facebook page

For example:

If your facebook page URL is https://www.facebook.com/siwa.online/?fref=ts then your name is siwa.online

If your facebook page URL is https://www.facebook.com/ADhouse-Communication-Group-121064187970420/?fref=ts then your id is 121064187970420


Frontend Plugin

Just create a new Facebook Stream Plugin on the page where the articles should be shown.

View

Mixed Post View = get the posts from all your provided facebook pages sorted by date and time

Post Overview = list all provided facebook pages and show their posts in the show view

Mixed Gallery View = get the uploaded images from all your provided facebook pages sorted by date and time

Gallery Overview = list all provided facebook pages and show their uploaded images in the show view

Mixed Event View = get the events from all your provided facebook pages sorted by startdate

Event Overview = list all provided facebook pages and show their events in the show view

Facebook Pages

Select the facebook pages you want to show from the ones you crawled in the backend plugin

max entries to show

maximum entries (posts or images) you want to show

use pagination

if you want to use a pagination

max entries per page

how many entries you want to show per pagination page

open link with

facebook = link to the facebook post

single show view = show the post on an own site

style to use

article style = whole width, styled as articles

list style = max. 500px width, styled as scrollable list


Real Url

You can use this realurl conf for your site:

'facebook_stream' => array(
array(
'GETvar' => 'tx_facebookstream_pi1[action]',

), array(

'GETvar' => 'tx_facebookstream_pi1[controller]',

),

), 'facebook_stream_post' => array(

array(

'GETvar' => 'tx_facebookstream_pi1[post]', 'lookUpTable' => array(

'table' => 'tx_facebookstream_domain_model_post', 'id_field' => 'uid', 'alias_field' => 'object_id', 'addWhereClause' => ' AND NOT deleted', 'useUniqueCache' => 1, 'useUniqueCache_conf' => array(

'strtolower' => 1, 'spaceCharacter' => '-',

),

),

),

), 'facebook_stream_page' => array(

array(

'GETvar' => 'tx_facebookstream_pi1[page]', 'lookUpTable' => array(

'table' => 'tx_facebookstream_domain_model_page', 'id_field' => 'uid', 'alias_field' => 'name', 'addWhereClause' => ' AND NOT deleted', 'useUniqueCache' => 1, 'useUniqueCache_conf' => array(

'strtolower' => 1, 'spaceCharacter' => '-',

),

),

), array(

'GETvar' => 'tx_facebookstream_pi1[viewType]',

),

), 'facebook_stream_site' => array(

array(
'GETvar' => 'tx_facebookstream_pi1[@widget_0][currentPage]',

),

),

You can add the following two rules for the encodeSpURL_postProc or encodeSpURL_preProc:

$params['URL'] = str_replace('facebook_stream/list/Page/facebook_stream_page', 'facebook-stream-list', $params['URL']); $params['URL'] = str_replace('facebook_stream/showSinglePost/Page/facebook_stream_post', 'facebook-stream-show', $params['URL']);

$params['URL'] = str_replace('facebook-stream-list', 'facebook_stream/list/Page/facebook_stream_page', $params['URL']); $params['URL'] = str_replace('facebook-stream-show', 'facebook_stream/showSinglePost/Page/facebook_stream_post', $params['URL']);


Use the scheduler to crawl for posts once a day

Scheduler

Menu Scheduled tasks

Create a new task with the class extbase - Extbase CommandController Task and enter the rootPage ID if your Root Page hasn't the ID 1

Type Recurring, Frequency 100

Menu setup check

If you haven't done yet, create the user _cli_scheduler and add a filemount to fileadmin!!! (otherwise the user has no access to the storage folders)

The first rootpage must have an storagePid set in the constants, otherwise the CommandController can't find the entries!

Copy the script line <path-to-your-typo3>/cli_dispatch.phpsh scheduler

Cronjob

Connect to your server via command line.

vi /etc/crontab

i-key

insert the cronjob command 0 0 * * * root php -f <path-to-your-typo3>/cli_dispatch.phpsh scheduler

Esc-key

:wq

now the scheduler is called every day at midnight