/technology/modules/ · linkedin Shipping

linkedin

Runs a LinkedIn Company Page from the harness: connect once over OAuth, then create, schedule, edit and delete posts, upload media, and address showcase pages.

What it is

linkedin.

Connect a page once over OAuth and the module holds the tokens; after that it creates, schedules, edits and deletes posts, uploads media, and addresses showcase pages as well as the main one. Everything except the OAuth callback sits under /v1/linkedin/admin/* behind an admin token.

It is not on crates.io, and that is a rule rather than an oversight. Harness ADR 0005: a crate whose name starts fz- is not published, and arrives as a pinned git dependency. This one holds long-lived credentials for our own pages, so publishing it would put a credential-bearing integration on crates.io for the convenience of nobody. Its source is in the harness repository with every other crate — ADR 0013, one repository — so the button above opens all of it.

Crate

fz-module-linkedin · not on crates.io. A pinned git dependency, harness ADR 0005. Source in the harness repository.

Ports

Database · Clock · Signer · HttpClient

Routes

  • POST /v1/linkedin/admin/connect — returns an authorize URL and a single-use state
  • GET /v1/linkedin/callback — public — spends the state, exchanges the code, stores sealed tokens
  • GET /v1/linkedin/admin/status — account, scopes, both expiries, today's request budget
  • DELETE /v1/linkedin/admin/account — forgets the tokens; keeps the post history
  • GET /v1/linkedin/admin/pages — pages and showcases, with roles. ?kind=showcase filters
  • POST /v1/linkedin/admin/pages/{org}/images — raw image body, returns an asset
  • POST /v1/linkedin/admin/pages/{org}/posts — creates or schedules a post
  • PATCH /v1/linkedin/admin/posts/{id} — commentary, CTA label, landing page

It is the module Factory Zero runs for its own pages.