Posts
Criar
const { urn, url } = await linkedin.createPost({
text: "Lançamos a v1.0 (finalmente) #release",
visibility: "PUBLIC", // ou "CONNECTIONS": só conexões de 1º grau
});
Um post leva um tipo de mídia, no máximo:
await linkedin.createPost({ text: "Uma imagem", images: [{ file: "tela.png", altText: "O novo dashboard" }] });
await linkedin.createPost({ text: "Uma galeria", images: ["a.jpg", "b.jpg", "c.png"] }); // 2 a 20
await linkedin.createPost({ text: "Um vídeo", video: { file: "demo.mp4", title: "Demo" } });
await linkedin.createPost({ text: "Slides", document: { file: "deck.pdf", title: "Nosso roadmap" } });
await linkedin.createPost({
text: "Vale a leitura",
article: { url: "https://example.com/post", title: "O post", description: "…", thumbnail: "capa.png" },
});
await linkedin.createPost({ text: "Concordo!", reshareOf: "https://www.linkedin.com/feed/update/urn:li:share:7…/" });
A mídia é um caminho local, ou { data: Uint8Array, filename, contentType }. Veja Mídia para os
formatos e limites. disableReshare: true impede que outras pessoas compartilhem o post.
O LinkedIn não busca a página de um artigo: o card mostra só o title, a description e a thumbnail que você
definir. Uma URL solta no texto ganha a prévia de link de sempre do LinkedIn.
O texto
O texto de um post usa o formato little do LinkedIn. Os caracteres reservados dele,
\ | { } @ [ ] ( ) < > # * _ ~, precisam ser escapados mesmo quando não formam nada. Um ( sem escape pode fazer
o LinkedIn cortar o post sem dar erro. O SDK escapa o texto puro para você:
- quebras de linha e emoji são mantidos;
#palavracontinua hashtag (hashtags: falsetorna todo#texto comum); um#que não começa palavra (C#) é escapado;- o limite é de 3.000 caracteres depois do escape, conferido antes do envio.
Para mencionar alguém, escreva você mesmo no formato little e passe rawText: true:
await linkedin.createPost({ text: "Valeu @[Ada Lovelace](urn:li:person:Ab12Cd34)\\!", rawText: true });
toLittle(text) e fromLittle(little) convertem manualmente.
Editar
await linkedin.editPost(urn, { text: "Lançamos a v1.0.1 (um hotfix)" });
Só o texto muda: o LinkedIn não deixa trocar as imagens, o vídeo, o documento ou o link de um post. Para isso, remova o post e poste de novo. O post aparece como editado.
Remover
await linkedin.deletePost(urn); // ou a URL do post
A remoção é permanente e leva junto os comentários e as reações. Remover de novo um post já removido dá certo.
Quais posts
editPost e deletePost aceitam uma URN de post (urn:li:share:… ou urn:li:ugcPost:…) ou uma URL que contenha
uma, como https://www.linkedin.com/feed/update/urn:li:share:…/. O link de Copiar link do post aponta para a
atividade do feed (…-activity-7…), que a API não aceita. Em linkedin.com, abra o menu ⋯ do post →
Incorporar este post: o código de incorporação traz a URN do post. parsePostRef aceita todas as formas e
explica o caso da atividade.