in-square / opendxp-linkedin-bundle
LinkedIn posts sync bundle for OpenDXP.
Package info
github.com/in-square/opendxp-linkedin-bundle
Type:opendxp-bundle
pkg:composer/in-square/opendxp-linkedin-bundle
v1.0.0
2026-03-30 13:59 UTC
Requires
- php: ^8.3
- guzzlehttp/guzzle: ^7.8
- insquare/opendxp-process-manager-bundle: ^1.0
- nesbot/carbon: ^2.0
- open-dxp/opendxp: ^1.0
- symfony/console: ^7.4
- symfony/framework-bundle: ^7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- phpstan/phpstan: ^1.11
This package is not auto-updated.
Last update: 2026-03-31 12:23:52 UTC
README
This bundle synchronizes the latest LinkedIn (Company Page) posts into OpenDXP DataObjects (LinkedinPost).
Requirements
- PHP 8.3
- Symfony 7.4
- OpenDXP 1.x
Environment Configuration
Set the following in .env or as real environment variables:
LINKEDIN_CLIENT_IDLINKEDIN_CLIENT_SECRETLINKEDIN_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}.
Bundle Configuration
Example (e.g. config/packages/in_square_opendxp_linkedin.yaml):
in_square_opendxp_linkedin: object_folder: '/LinkedIn' assets_folder: '/linkedin' items_limit: 3
OAuth
- Open
GET /admin/linkedin/connectand authorize access. - LinkedIn redirects to
GET /admin/linkedin/callback— the token is stored inWebsiteSetting.
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
- Install and register the bundle in the host project:
- Ensure the bundle is registered in
config/bundles.phpas:InSquare\OpendxpLinkedinBundle\InSquareOpendxpLinkedinBundle::class => ['all' => true] - Ensure routes are loaded from
config/routes/in_square_opendxp_linkedin.yaml.
- Ensure the bundle is registered in
- Configure environment variables (e.g. in
.env):LINKEDIN_CLIENT_IDLINKEDIN_CLIENT_SECRETLINKEDIN_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_opendxp_linkedin.yaml:object_folder(default/LinkedIn)assets_folder(default/linkedin)items_limit(default3)
- Install the bundle (creates the
LinkedinPostclass definition):bin/console opendxp:bundle:install InSquareOpendxpLinkedinBundle
- 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