2017 © Pedro Peláez
 

symfony-bundle social-feed-bundle

collecting posts from all type of social feeds like twitter, instagram, facebook for multiple user accounts.

image

florianklee/social-feed-bundle

collecting posts from all type of social feeds like twitter, instagram, facebook for multiple user accounts.

  • Wednesday, December 21, 2016
  • by FlorianKlee
  • Repository
  • 0 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 13 Forks
  • 0 Open issues
  • 7 Versions
  • 0 % Grown

The README.md

GenjSocialFeedBundle

The GenjSocialFeedBundle. Features:, (*1)

  • Scrape social posts from Twitter, Instagram & Facebook pages.
  • Display most recent posts

Requirements

  • Symfony 2.5
  • PHP 5.4
  • GedmoDoctrineExtensions - https://packagist.org/packages/gedmo/doctrine-extensions
  • themattharris/tmhoauth
  • facebook/php-sdk-v4
  • php-instagram-api/php-instagram-api

Installation

Add this bundle and the facebook/instagram/twitter libraries to your composer.json:, (*2)

    ...
    "require": {
        ...
        "genj/social-feed-bundle": "dev-master"
        ...

Then run composer update. After that is done, enable the bundle in your AppKernel.php:, (*3)

General

# app/AppKernel.php

class AppKernel extends Kernel
{

    public function registerBundles() {

        $bundles = array(
            ...
            new Genj\SocialFeedBundle\GenjSocialFeedBundle()
            ...

Update your database schema:, (*4)

php app/console doctrine:schema:update --force

Configuration

Copy the social_feed.yml.dist to app/config/social_feed.yml Add all the needed configurations. Remove the providers that you don't need., (*5)

Check all Possible configuration by dumping the config, (*6)

app/console config:dump-reference GenjSocialFeedBundle

Add your basic API tokens to your parameters.yml by adding this to your parameters.yml.dist, (*7)

genj_social_feed.twitter.consumer_key: null
genj_social_feed.twitter.consumer_secret: null
genj_social_feed.twitter.user_token: null
genj_social_feed.twitter.user_secret: null

genj_social_feed.facebook.app_id: null
genj_social_feed.facebook.app_secret: null
genj_social_feed.facebook.client_token: null

genj_social_feed.instagram.client_id: null

and then run the install command of composer, (*8)

php composer.phar install

Your config.yml will look like this: (Leave out the providers that you don't use), (*9)

genj_social_feed:
    oAuth:
        twitter:
            consumer_key:    %genj_social_feed.twitter.consumer_key%
            consumer_secret: %genj_social_feed.twitter.consumer_secret%
            user_token:      %genj_social_feed.twitter.user_token%
            user_secret:     %genj_social_feed.twitter.user_secret%
        facebook:
            app_id:          %genj_social_feed.facebook.app_id%
            app_secret:      %genj_social_feed.facebook.app_secret%
            client_token:    %genj_social_feed.facebook.client_token%
        instagram:
            client_id:       %genj_social_feed.instagram.client_id%
    feed_users:
        twitter:
            - nicokaag
        facebook:
            - nicokaag
        instagram:
            - nicokaag

Add the needed vich mapping configuration to your config.yml, (*10)

...
vich_uploader:
    ...
    mappings:
        ...
        genj_socialfeed_post_file:
            uri_prefix:         /uploads/genjsocialfeedpost
            upload_destination: %kernel.root_dir%/../web/uploads/genjsocialfeedpost
            namer:              vich_uploader.namer_origname
            inject_on_load:     true
        genj_socialfeed_post_author_file:
            uri_prefix:         /uploads/genjsocialfeedpostauthor
            upload_destination: %kernel.root_dir%/../web/uploads/genjsocialfeedpostauthor
            namer:              vich_uploader.namer_origname
            inject_on_load:     true

If you want to make use of the JSON api call to get the social posts, add the following routing:, (*11)

genj_social_feed_posts_get:
    pattern:  /api/social-feed/posts
    defaults:
        _controller: GenjSocialFeedBundle:SocialFeed:getPosts
        _format: ~
        max: 5
        provider: ""
    requirements:
        _method: GET
        max: '^\d+$'

Run feed scraper task

php app/console genj:social-feed --provider=facebook

provider can be:, (*12)

  • facebook
  • twitter
  • instagram

ToDo

  • Add tests

The Versions