概览
提供商 ID 为 linkedin。它会使用必需的 LinkedIn-Version 请求头,将一条成员帖子发布到 POST https://api.linkedin.com/rest/posts。组织帖子尚未实现:作者选择只接受 member。
要求
- 一个带有 client id 和 client secret 的 LinkedIn 开发者应用。
- 一个为授权步骤注册的重定向 URI。
- 用于发布的成员授权。代表成员发布所记录的授权范围是
w_member_social。
凭证
| 字段 | 含义 | 机密 |
|---|---|---|
client_id | 应用的 client id。 | 否 |
client_secret | 应用的 client secret。 | 是 |
发布作者为 urn:li:person:{id},成员 ID 通过 GET /v2/me 解析;LinkedIn 已将该接口标记为弃用。这里刻意不使用 GET /v2/userinfo 来确定作者,因为它的 sub 对每个应用都不同,并不是稳定的全局成员 ID。无法读取成员 ID 时,连接会安全失败,而不会猜测。
连接
redirectUri 必填;机器调用方可以把 client id、client secret 和范围列表作为连接选项传入。
{
"type": "start",
"provider": "linkedin",
"options": {
"redirectUri": "https://example.com/oauth/callback/linkedin",
"scopes": ["w_member_social", "openid", "profile"]
}
}syndroo connect --input connect.json --json未解决。所读取的令牌端点没有记录 PKCE,因此提供商绝不添加 code_challenge。启动步骤会返回一个授权动作;本地 CLI 会使用 --redirect-uri 和控制终端,或使用 --callback-url - 自行完成该回调,如凭证参考所述。这条本地回调路径只针对本地服务器做了模拟测试;尚未连接真实的 LinkedIn 账号。
首次发布
{
"type": "prepare",
"content": {},
"targets": [
{
"provider": "linkedin",
"options": { "commentary": "Hello from Syndroo.", "visibility": "PUBLIC" }
}
]
}syndroo publish --input post.json --json成功时返回 HTTP 201,响应头包含已创建帖子的 URN。该请求头只会随响应到达,因此帖子创建后发生超时会使结果保持 unknown,并且不可重试。
能力
清单声明 text,并以带有 lifecycleState: PUBLISHED 的成员帖子发布。未解决。所获取的页面没有记录评论正文的最大长度,因此本指南既不给出字符上限,提供商也不强制执行。
选项
| 位置 | 可接受的键 |
|---|---|
| 连接选项 | redirectUri(必填)、clientId、clientSecret、scopes。 |
| 发布选项 | commentary 和 visibility(均必填)、author(仅限 member)、distribution、linkedinVersion。 |
| 内容 | 无必填项;LinkedIn 使用目标选项。 |
未解决。linkedinVersion 在提供商清单中固定为 202601,也是唯一接受的值。LinkedIn 按月更新此请求头,因此应将该常量视为等待对照当前 API 版本重新核验,而不是推荐值。
故障排除
提供商从不重试,只在已确认失败未被应用时报告失败。被拒绝或已经使用的授权码会作为回调拒绝报告,而不会重试。未解决。LinkedIn 的错误响应格式尚未在一手页面确认,因此本指南不描述其结构。
撤销与安全
未解决。尚未获取官方的移除权限或撤销令牌步骤,因此本指南不提供撤销 URL。请从 LinkedIn 设置中移除应用访问权限,然后断开本地连接:
syndroo connect --disconnect <connectionId>