This bundle synchronizes the latest LinkedIn (Company Page) posts into Pimcore DataObjects (LinkedinPost).
- PHP 8.3
- Symfony 6.4
- Pimcore 11.5
Set the following in .env or as real environment variables:
LINKEDIN_CLIENT_IDLINKEDIN_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(defaultr_organization_social)
Tokens are stored in WebsiteSetting under the key linkedin_token_{env}.
Example (e.g. config/packages/in_square_pimcore_linkedin.yaml):
in_square_pimcore_linkedin:
object_folder: '/LinkedIn'
assets_folder: '/linkedin'
items_limit: 3- Open
GET /admin/linkedin/connectand authorize access. - LinkedIn redirects to
GET /admin/linkedin/callback— the token is stored inWebsiteSetting.
Command:
bin/console app:linkedin:sync-latest --limit=3Cron example (daily at 06:00):
0 6 * * * php /path/to/bin/console app:linkedin:sync-latest --limit=3- Install and register the bundle in the host project:
- Ensure the bundle is registered in
config/bundles.phpas:InSquare\PimcoreLinkedinBundle\InSquarePimcoreLinkedinBundle::class => ['all' => true] - Ensure routes are loaded from
config/routes/in_square_pimcore_linkedin.yaml.
- Ensure the bundle is registered in
- Configure environment variables (e.g. in
.env):LINKEDIN_CLIENT_IDLINKEDIN_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(defaultr_organization_social)
- Configure bundle settings in
config/packages/in_square_pimcore_linkedin.yaml:-
object_folder(default/LinkedIn) -
assets_folder(default/linkedin) -
items_limit(default3)
-
- Install the bundle (creates the
LinkedinPostclass definition):bin/console pimcore:bundle:install InSquarePimcoreLinkedinBundle
- Clear cache:
bin/console cache:clear
- Authorize LinkedIn (admin-only endpoints):
- Open
GET /admin/linkedin/connect - After successful login, LinkedIn redirects to
GET /admin/linkedin/callback
- Open
- Run sync manually:
bin/console app:linkedin:sync-latest --limit=3
- (Optional) Add cron (daily at 06:00):
0 6 * * * php /path/to/bin/console app:linkedin:sync-latest --limit=3