@florydev/linkedin-api-voyager

中文文档
1.5.1发布于 2026/08/08MITTypeScriptCommonJS近 30 天下载 2952

Uma bibliotica TypeScript para interagir com a API interna do LinkedIn (Voyager) 互联网档案馆的存檔,存档日期2013-12-02

中文使用文档
文档目录39 节
  1. 穆丹萨·德·帕科特
  2. O que esta bibliotica faz (英语:
  3. 请求
  4. 英斯特拉桑
  5. 引言词
  6. 科莫语 li_at 电子 JSESSIONID
  7. 有重要的意义 JSESSIONID
  8. 实例rápido
  9. API pública (英语)
  10. 变态
  11. 企业
  12. 美洲人民行动组织
  13. 布萨卡
  14. Busca 遗传
  15. 比索
  16. 员额e
  17. Post por URL 邮递地址
  18. 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文…
  19. 乌斯瓦里奥
  20. Mensagens 电子收件箱
  21. 对话框
  22. 门萨根斯·德·马·孔萨
  23. 锥形,锥形和红相
  24. Timo real com SSE (英语)
  25. 乌蒂利塔里奥斯
  26. Funções 跨王朝重要人物
  27. Client()
  28. fetchDataApi()
  29. fetchDataClient()
  30. postSduiAction()
  31. 埃尔罗斯
  32. 限制
  33. 萨古兰察
  34. 众议院
  35. 脚本 da raiz
  36. Estrutura 校长
  37. 辅助工人
  38. 内务省
  39. 语法

API Voyager 已链接

Bibliotica TypeScript para interagir com enders internos do LinkedIn Web (Voyager API). 互联网档案馆的存檔,存档日期2013-12-21.

Aviso 重要: esta bibliotica 互联网档案馆的存檔,存档日期2011-10-02。 。 。 .

npm version License: MIT

穆丹萨·德·帕科特

欧·帕克特反戈 linkedin-api-voyager (原始内容存档于2017-09-21) (英语). foi renmeado para @florydev/linkedin-api-voyager。 。 。 .

yarn add @florydev/linkedin-api-voyager

O que esta bibliotica faz (英语:

Esta bibliotica encapsula chamadas para enders internos usados pelo 前端 do LinkedIn e normaliza 作为resposta para uso em aplica es node.js.

A:

  • 乌萨里奥派
  • 经验、技能、证书
  • 父子关系
  • 公共汽车
  • 公共汽车
  • 科门塔里奥斯
  • 收件箱 e 菜单
  • 康克萨斯
  • 通过 SSE 实现节奏事件

请求

  • 节点.js
  • 无链接的Sessão autenticada
  • 饼干 válidos li_at 电子 JSESSIONID

埃斯塔·比布利奥特卡·德·塞尔·韦达 没有后端. Não 不使用浏览器.

英斯特拉桑

yarn add @florydev/linkedin-api-voyager

引言词

官方网站 Client() (原始内容存档于2018-03-26). uma única vez antes de chamar qualquer função.

import { Client } from "@florydev/linkedin-api-voyager";

Client({
  li_at: process.env.LINKEDIN_LI_AT!,
  JSESSIONID: process.env.LINKEDIN_JSESSIONID!,
});

科莫语 li_at 电子 JSESSIONID

  1. Faça 登录没有链接到 navegador .
  2. (原始内容存档于2018-10-21). Abra o DevTools.
  3. 临Τ Application 尔 Storage。 。 。 .
  4. 亚伯拉 Cookies 页:1 https://www.linkedin.com。 。 。 .
  5. 库皮:
    • li_at
    • JSESSIONID

有重要的意义 JSESSIONID

通过 somente 或 valor 碱性饼干 Client。 。 。 .

Exemplo seguro: (英语)

Client({
  li_at: "AQED....",
  JSESSIONID: "1234567890",
});

(法语) "ajax:1234567890" {\fn华文楷体\fs16\1che0e0e0}做纳维加多 {\fn华文楷体\fs16\1che0e0e0}正常的通过者.

实例rápido

import "dotenv/config";
import {
  Client,
  getUserMiniProfile,
  getCompany,
  searchPeople,
} from "@florydev/linkedin-api-voyager";

Client({
  li_at: process.env.LINKEDIN_LI_AT!,
  JSESSIONID: process.env.LINKEDIN_JSESSIONID!,
});

async function main() {
  const profile = await getUserMiniProfile("florymignon");
  const company = await getCompany("microsoft");
  const people = await searchPeople({
    query: "software engineer",
    regions: ["br:0"],
  });

  console.log({
    profile,
    company,
    totalPeople: people.results.length,
  });
}

main().catch(console.error);

API pública (英语)

变态

import {
  getMe,
  getUserMiniProfile,
  extractProfileIdLinkedin,
  getProfileSectionAbout,
  getProfissionalExperiences,
  getContactInfo,
  getLinkedinSkills,
  getLinkedinEducation,
  getLinkedinCertifications,
} from "@florydev/linkedin-api-voyager";
  • getMe() - > 环自圆顶
  • getUserMiniProfile(identifier) - > 迷你纵览 publicIdentifier
  • extractProfileIdLinkedin(profileUrl) - > 解决 o ID Interno do perfil
  • getProfileSectionAbout(identifier) - > 关于文本
  • getProfissionalExperiences(identifier) - > profissionais perperiências 互联网档案馆的存檔,存档日期2013-12-02
  • getContactInfo(identifier) - > 信息传输系统
  • getLinkedinSkills(identifier) - > 技能
  • getLinkedinEducation(identifier) - > 教育
  • getLinkedinCertifications(identifier) - > 证书

实例 :

const profile = await getUserMiniProfile("florymignon");
const experiences = await getProfissionalExperiences("florymignon");
const contact = await getContactInfo("florymignon");

企业

import { getCompany } from "@florydev/linkedin-api-voyager";

const company = await getCompany("microsoft");

O parâmetro é o slock da URL da empresa: 互联网档案馆的存檔,存档日期2013-12-02

  • https://www.linkedin.com/company/microsoft/ - > (中文) "microsoft"

美洲人民行动组织

import {
  getCompanyEntityId,
  searchCompanyPeople,
} from "@florydev/linkedin-api-voyager";

const companyId = await getCompanyEntityId("microsoft");

const people = await searchCompanyPeople({
  companyId,
  query: "engineer",
  pastCompany: false,
  includePrivateProfiles: true,
  offset: 0,
  limit: 10,
});

坎波斯乌特斯:

  • companySlug
  • companyId
  • query
  • regions
  • schools
  • keywordTitle
  • pastCompany
  • includePrivateProfiles

布萨卡

Busca 遗传

import { search } from "@florydev/linkedin-api-voyager";

const res = await search({
  query: "react developer",
  offset: 0,
  limit: 25,
});

比索

import { searchPeople } from "@florydev/linkedin-api-voyager";

const people = await searchPeople({
  query: "engenheiro de software",
  regions: ["br:0"],
  currentCompany: ["urn:li:fsd_company:1035"],
  networkDepths: ["F", "S"],
  keywordTitle: "CTO",
});

观察者:

  • search() {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}没有马克西莫 25 果报.
  • searchPeople() aceita 字符串简单 ou objeto com filtros. 中国植物物种信息数据库.
  • networkDepths 我们a:
    • F - > 1克劳
    • S - > 2o克劳
    • O - > 论坛da rede

员额e

import {
  getPostLinkedin,
  getCommentsByPostUrl,
  getUserPosts,
} from "@florydev/linkedin-api-voyager";

Post por URL 邮递地址

const post = await getPostLinkedin(
  "https://www.linkedin.com/posts/florymignon_...-activity-1234567890-abcd",
  10,
  10,
);

维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基语录

const comments = await getCommentsByPostUrl(
  "https://www.linkedin.com/feed/update/urn:li:activity-1234567890/",
);

乌斯瓦里奥

const posts = await getUserPosts({
  identifier: "florymignon",
  start: 0,
  count: 50,
});

观察者:

  • getCommentsByPostUrl() (原始内容存档于2018-03-26) (英语). pagina recersivamente até acabar.
  • getPosts() 已经存在, mas hoje é 占位符 e reronda []。 。 。 .

Mensagens 电子收件箱

import {
  getMessagingInboxConversations,
  getMessages,
} from "@florydev/linkedin-api-voyager";

对话框

const conversations = await getMessagingInboxConversations({
  identifier: "florymignon",
});

门萨根斯·德·马·孔萨

const messages = await getMessages(conversations[0].urn);

也希望他们能继续工作

  • VIDEO
  • IMAGE
  • FILE
  • AUDIO

锥形,锥形和红相

托达斯作为乐趣 baixo aceitam vanityName (o identificador público de.) 互联网档案馆的存檔,存档日期2013-12-22 /in/fulano (原始内容存档于2017-09-21) (中文(中国大陆) ). You a URL Confleta) como entrada. memberId (单位:千美元) ACoA... e e sempre ocional e resolvido autalamente quando não fornecido. 互联网档案馆的存檔,存档日期2013-12-02., p.

import {
  receivedInvitation,
  sentInvitation,
  getMyConnections,
  sendConnectionRequest,
  cancelSentInvitation,
  removeConnection,
  followProfile,
  unfollowProfile,
  getProfileConnections,
  getProfileFollowers,
  getProfileFollowing,
} from "@florydev/linkedin-api-voyager";

const received = await receivedInvitation({ start: 0, count: 10 });
const sent = await sentInvitation({ start: 0, count: 10 });

// Minhas conexões (Voyager /relationships/connections)
const myConnections = await getMyConnections({ start: 0, count: 20 });

// Enviar convite de conexão (SDUI flagship) — só precisa do identifier
await sendConnectionRequest({
  vanityName: "ana-silva",                         // OU "https://www.linkedin.com/in/ana-silva/"
  message: "Olá Ana, gostaria de nos conectar!",   // opcional
});
// Campos opcionais que você pode sobrescrever: firstName, lastName, inviteeMemberId (ACoA...),
// legacyNumericMemberId (ID numérico legado, ex: "876631041"), trackingId, profileCanonicalUrl

// Cancelar/retirar convite enviado (invitationId vem de sentInvitation -> invitationUrn)
await cancelSentInvitation({
  invitationId: "7123456789012345678",
  inviteeVanityName: "ana-silva",                   // memberId opcional
});

// Remover conexão existente
await removeConnection({ vanityName: "ana-silva" });

// Seguir / deixar de seguir
await followProfile({ vanityName: "ana-silva" });
await unfollowProfile({ vanityName: "ana-silva" });

// Listar conexões / seguidores / seguindo de um perfil 3º
// Recebe vanity name (identifier) OU memberId (ACoA...) — auto-detectado
const identifier = "williamhgates";                 // ou "ACoAABy..."
const profileConnections = await getProfileConnections(identifier, { start: 0, count: 20 });
const profileFollowers = await getProfileFollowers(identifier, { count: 10 });
const profileFollowing = await getProfileFollowing(identifier, { count: 10 });

Timo real com SSE (英语)

import {
  Client,
  linkedinSSE,
  LinkedInRealtimeTopic,
} from "@florydev/linkedin-api-voyager";

Client({
  li_at: process.env.LINKEDIN_LI_AT!,
  JSESSIONID: process.env.LINKEDIN_JSESSIONID!,
});

await linkedinSSE({
  topics: ["Messages", "TypingIndicators", "Conversations"],
  onData: (data) => console.log(data),
  onError: (error) => console.error(error),
});

阿尔古马斯议题不赞成:

  • Messages
  • TypingIndicators
  • Conversations
  • Reactions
  • Comments

乌蒂利塔里奥斯

import {
  extractFields,
  resolveReferences,
  extractDataWithReferences,
  getIdFromUrn,
  isLinkedInUrn,
  normalizeRawOrganization,
} from "@florydev/linkedin-api-voyager";

{\fn方正黑体简体\fs18\b1\bord1\shad1\3cH2F2F2F}[阿斯克·克克多克] {\fn方正黑体简体\fs18\b1\bord1\shad1\3cH2F2F2F}阿斯克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克·克多克多克·克多克多克·克多克多克·克多克多克·克多克多克·克多克多克多克·克多克多克多克多克·克多克多克多克·克多克多克·克多克多克多克多克多克].

实例 :

const fieldsMap = {
  name: "firstName",
  headline: "headline",
};

const data = extractFields([someObject], fieldsMap);

Funções 跨王朝重要人物

Client()

官方化的,一个全球的我们dadortoda 解放.

fetchDataApi()

Usa o 前缀 /voyager/api faz chamadas 获得 para 端点 Internos do LinkedIn.

fetchDataClient()

Usado para inspecionar将 sem seguir 自动调剂重置.

postSduiAction()

帮助他们 src/core/sdui.ts ações SDUI旗舰-web 2025/2026(模式:羡慕/祖先相会、seguir、去除者相会)。 法兹 POST /flagship-web/rsc-action/actions/server-request com 信封缩写、信头x-li-page-instance, (中文(简体) ), x-li-page-instance-tracking-id, (中文(简体) ), x-li-application-instance, (中文(简体) ), x-li-anchor-page-key, (中文(简体) ), x-li-track mpName=web, (中文(简体) ), x-li-rsc-stream: true页:1 _v=0.2.6676 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你觉得呢.

实例 :

import { postSduiAction } from "@florydev/linkedin-api-voyager/src/core/sdui";

await postSduiAction({
  sduiid: "com.linkedin.sdui.requests.mynetwork.addaUpdateFollowState",
  payload: { followStateType: "FollowStateType_FOLLOW_ACTIVE", memberUrn: { memberId: "1361766591" }, ... },
  anchorPageKey: "d_flagship3_profile_view_base",       // ou d_flagship3_people
  screenId: "com.linkedin.sdui.flagshipnav.profile.Profile", // ou ...mynetwork.Grow
  refererUrl: "https://www.linkedin.com/in/fulano/",
});

埃尔罗斯

O Projeto 导出a:

  • LinkedInClientNotInitializedError
  • LinkedInAuthRedirectError

纳·普雷蒂卡,阿能达基地 Error 简指相通等分. Então trate mistos tanto por slase squento por sensagem squando necessário. 中国植物物种信息数据库.

限制

  • Esta bibliotica de endpoints internos do LinkedIn, então pode quebrar sem aviso. 中国植物物种信息数据库.
  • (原始内容存档于2018-10-25). Nacessário manter cookies válidos.
  • 挑战塞西昂.
  • (原始内容存档于2018-10-21) (英语). Algumas rotas têm repostas mido aninhadas e mudam com frequência.

萨古兰察

  • Nunca 承诺 li_at 电子 JSESSIONID。 。 。 .
  • Nunca使用 essa lib 没有前端.
  • Nunca 轨迹 src/teste.ts (原始内容存档于2018-03-26) (英语). como exemplo de produção.
  • 随便 .env{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}请说出什么.

众议院

脚本 da raiz

yarn
yarn build
yarn dev

Estrutura 校长

多米尼奥(Cada um com seus próprios tipos)的作品:

src/
├── index.ts                # barrel principal / exports públicos
├── core/                   # código compartilhado entre todos os módulos
│   ├── config.ts           # cliente HTTP e helpers base (fetchDataApi, etc)
│   ├── errors.ts           # classes de erro
│   ├── utils.ts            # parsing e normalização (URNs, imagens, references)
│   └── types.ts            # tipos compartilhados globais
└── modules/                # camada de domínio, um módulo por assunto
    ├── user/               # perfis, seções, about, contact, recommendations
    │   ├── types.ts
    │   └── (vários arquivos de implementação)
    ├── company/            # empresas + pessoas por empresa
    │   ├── types.ts
    │   ├── company.ts
    │   └── company-people.ts
    ├── posts/              # posts e comentários
    │   ├── types.ts
    │   └── posts.ts
    ├── search/             # busca geral e busca de pessoas
    │   ├── types.ts
    │   └── search.ts
    ├── messages/           # inbox e mensagens
    │   ├── types.ts
    │   └── message.ts
    ├── network/            # convites, follow, conexões, listagens de 3º perfil
    │   ├── index.ts
    │   ├── types.ts
    │   ├── network.ts              # received/sent invitations, getMyConnections
    │   ├── invitation-actions.ts   # sendConnectionRequest, cancelSentInvitation
    │   ├── connection-actions.ts   # removeConnection
    │   ├── follow-actions.ts       # followProfile, unfollowProfile
    │   ├── profile-lists.ts        # getProfileConnections/Followers/Following
    │   └── network-helpers.ts      # resolveMemberIds, resolveMemberId, pickVanity, extractFirstLegacyNumericId
    └── sse/                # eventos em tempo real
        ├── types.ts
        └── linkedin-sse.ts

辅助工人

(原始内容存档于2018-10-21) (英语). O repo tumbém possui worker-service/, um subprojeto 本地参数SSE + BullMQ + Redis + Supabase.

指挥官:

yarn --cwd worker-service build
yarn --cwd worker-service start

内务省

爱奇艺 爱奇艺 爱奇艺

  • skills/references/profiles.md
  • skills/references/companies.md
  • skills/references/posts.md
  • skills/references/search-network.md
  • skills/references/realtime.md
  • skills/references/internals.md

语法

麻省理工学院

版本与发布记录

@florydev/linkedin-api-voyager 共发布 13 个版本,首次发布于 2026/02/06;过去 12 个月发布了 13 个版本。

版本发布日期距今
1.5.1latest2026/08/083 个月前
1.4.62026/08/063 个月前
1.4.52026/08/063 个月前
1.4.42026/08/053 个月前
1.4.22026/08/043 个月前
1.3.132026/05/046 个月前

关于 @florydev/linkedin-api-voyager 的常见问题

@florydev/linkedin-api-voyager 是什么?

Uma bibliotica TypeScript para interagir com a API interna do LinkedIn (Voyager) 互联网档案馆的存檔,存档日期2013-12-02

如何安装 @florydev/linkedin-api-voyager?

在项目目录运行 npm install @florydev/linkedin-api-voyager,或使用 pnpm add / yarn add / bun add。

@florydev/linkedin-api-voyager 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@florydev/linkedin-api-voyager 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@florydev/linkedin-api-voyager 可以商用吗?

@florydev/linkedin-api-voyager 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@florydev/linkedin-api-voyager 的下载量有多少?

根据 npm 官方下载统计,@florydev/linkedin-api-voyager 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,952 次,日均约 98 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@florydev/linkedin-api-voyager 还在维护吗?

最新版本 1.5.1 发布于 2026/08/08(3 个月前);至今共发布 13 个版本,其中过去 12 个月发布了 13 个;首次发布于 2026/02/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。