chore: LinkedIn plugin uses deprecated UGC Posts API -- migrate to Community Management API #249

Open
opened 2026-06-29 14:28:18 +00:00 by jmiller · 1 comment
Owner

Description

The LinkedIn plugin uses the UGC Posts API (/v2/ugcPosts) which LinkedIn has deprecated in favor of the Community Management API (/rest/posts).

Current endpoints:

  • POST https://api.linkedin.com/v2/ugcPosts (publish)
  • DELETE https://api.linkedin.com/v2/ugcPosts/{id} (delete)
  • GET https://api.linkedin.com/v2/me (validate)

LinkedIn's migration path:

  • Publishing: POST https://api.linkedin.com/rest/posts with versioned headers (LinkedIn-Version: 202401)
  • Delete: DELETE https://api.linkedin.com/rest/posts/{urn}
  • Profile: GET https://api.linkedin.com/v2/userinfo (OpenID Connect)

Changes needed

  1. Update publish endpoint to /rest/posts with new payload format
  2. Update delete endpoint to /rest/posts/{urn}
  3. Add LinkedIn-Version header to all requests
  4. Update payload structure from UGC format to Posts format
  5. Consider also adding image upload via the Assets API (/rest/images)

Impact

  • Severity: Medium -- works now but will break when LinkedIn sunsets UGC Posts API
  • Affected file: source/packages/plg_mokosuitecross_linkedin/src/Extension/LinkedinService.php
## Description The LinkedIn plugin uses the UGC Posts API (`/v2/ugcPosts`) which LinkedIn has deprecated in favor of the Community Management API (`/rest/posts`). Current endpoints: - `POST https://api.linkedin.com/v2/ugcPosts` (publish) - `DELETE https://api.linkedin.com/v2/ugcPosts/{id}` (delete) - `GET https://api.linkedin.com/v2/me` (validate) LinkedIn's migration path: - Publishing: `POST https://api.linkedin.com/rest/posts` with versioned headers (`LinkedIn-Version: 202401`) - Delete: `DELETE https://api.linkedin.com/rest/posts/{urn}` - Profile: `GET https://api.linkedin.com/v2/userinfo` (OpenID Connect) ## Changes needed 1. Update publish endpoint to `/rest/posts` with new payload format 2. Update delete endpoint to `/rest/posts/{urn}` 3. Add `LinkedIn-Version` header to all requests 4. Update payload structure from UGC format to Posts format 5. Consider also adding image upload via the Assets API (`/rest/images`) ## Impact - **Severity**: Medium -- works now but will break when LinkedIn sunsets UGC Posts API - **Affected file**: `source/packages/plg_mokosuitecross_linkedin/src/Extension/LinkedinService.php`
Author
Owner

Branch created: feature/249-chore-linkedin-plugin-uses-deprecated-ug

git fetch origin
git checkout feature/249-chore-linkedin-plugin-uses-deprecated-ug
Branch created: [`feature/249-chore-linkedin-plugin-uses-deprecated-ug`](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteCross/src/branch/feature/249-chore-linkedin-plugin-uses-deprecated-ug) ```bash git fetch origin git checkout feature/249-chore-linkedin-plugin-uses-deprecated-ug ```
Sign in to join this conversation.
No labels
Priority Medium
Type Feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteCross#249