in-square/pimcore-linkedin-bundle

LinkedIn posts sync bundle for Pimcore.

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:pimcore-bundle

pkg:composer/in-square/pimcore-linkedin-bundle

v1.0.0 2026-02-15 15:32 UTC

This package is not auto-updated.

Last update: 2026-02-16 14:03:25 UTC


README

This bundle synchronizes the latest LinkedIn (Company Page) posts into Pimcore DataObjects (LinkedinPost).

Requirements

  • PHP 8.3
  • Symfony 6.4
  • Pimcore 11.5

Environment Configuration

Set the following in .env or as real environment variables:

  • LINKEDIN_CLIENT_ID
  • LINKEDIN_CLIENT_SECRET
  • LINKEDIN_REDIRECT_URI (must match your OAuth app settings, e.g. http://localhost/admin/linkedin/callback)
  • LINKEDIN_ORGANIZATION_URN (e.g. urn:li:organization:XXXX)
  • LINKEDIN_API_VERSION (e.g. 202509)
  • Optional: LINKEDIN_SCOPES (default r_organization_social)

Tokens are stored in WebsiteSetting under the key linkedin_token_{env}.

Bundle Configuration

Example (e.g. config/packages/in_square_pimcore_linkedin.yaml):

in_square_pimcore_linkedin:
    object_folder: '/LinkedIn'
    assets_folder: '/linkedin'
    items_limit: 3

OAuth

  1. Open GET /admin/linkedin/connect and authorize access.
  2. LinkedIn redirects to GET /admin/linkedin/callback — the token is stored in WebsiteSetting.

Sync (cron/command)

Command:

bin/console app:linkedin:sync-latest --limit=3

Cron example (daily at 06:00):

0 6 * * * php /path/to/bin/console app:linkedin:sync-latest --limit=3

Step-by-Step Installation

  1. Install and register the bundle in the host project:
    • Ensure the bundle is registered in config/bundles.php as: InSquare\PimcoreLinkedinBundle\InSquarePimcoreLinkedinBundle::class => ['all' => true]
    • Ensure routes are loaded from config/routes/in_square_pimcore_linkedin.yaml.
  2. Configure environment variables (e.g. in .env):
    • LINKEDIN_CLIENT_ID
    • LINKEDIN_CLIENT_SECRET
    • LINKEDIN_REDIRECT_URI (must match your OAuth app settings, e.g. http://localhost/admin/linkedin/callback)
    • LINKEDIN_ORGANIZATION_URN (e.g. urn:li:organization:XXXX)
    • LINKEDIN_API_VERSION (e.g. 202509)
    • Optional: LINKEDIN_SCOPES (default r_organization_social)
  3. Configure bundle settings in config/packages/in_square_pimcore_linkedin.yaml:
    • object_folder (default /LinkedIn)
    • assets_folder (default /linkedin)
    • items_limit (default 3)
  4. Install the bundle (creates the LinkedinPost class definition):
    bin/console pimcore:bundle:install InSquarePimcoreLinkedinBundle
  5. Clear cache:
    bin/console cache:clear
  6. Authorize LinkedIn (admin-only endpoints):
    • Open GET /admin/linkedin/connect
    • After successful login, LinkedIn redirects to GET /admin/linkedin/callback
  7. Run sync manually:
    bin/console app:linkedin:sync-latest --limit=3
  8. (Optional) Add cron (daily at 06:00):
    0 6 * * * php /path/to/bin/console app:linkedin:sync-latest --limit=3