PHP+Curl实现LinkedIn发帖:如何添加可点击图片与跳转链接
解决LinkedIn帖子同时显示可点击图片与跳转链接的问题
核心解决思路
LinkedIn的ARTICLE类型分享支持自定义封面图+跳转链接的组合,你之前的错误是因为媒体字段的格式不符合ARTICLE类型的要求——不能直接使用图片URN,需要将其嵌套到thumbnails数组中。
正确的JSON请求体结构
构造符合要求的请求体,示例如下:
{ "author": "urn:li:person:你的个人URN", "lifecycleState": "PUBLISHED", "specificContent": { "com.linkedin.ugc.ShareContent": { "shareCommentary": { "text": "你的帖子文案" }, "shareMediaCategory": "ARTICLE", "media": [ { "status": "READY", "description": { "text": "图片描述文字" }, "originalUrl": "https://你的目标跳转链接.com", "title": { "text": "链接标题" }, "thumbnails": [ { "resolvedUrl": "urn:li:digitalmediaAsset:你上传得到的图片URN" } ] } ] } }, "visibility": { "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC" } }
关键注意点
- 媒体格式适配:
ARTICLE类型的media对象中,必须把图片URN放在thumbnails[0].resolvedUrl字段下,而非直接使用urn字段(那是IMAGE类型的用法)。 - 状态设置:
media对象的status必须设为READY,否则LinkedIn会判定媒体资源未就绪。 - 权限验证:确保认证令牌包含
w_member_social权限,这是发布UGC内容的必要条件。
PHP+Curl请求示例代码
<?php $accessToken = "你的访问令牌"; $personUrn = "urn:li:person:你的个人ID对应的URN"; $imageUrn = "urn:li:digitalmediaAsset:你上传图片后得到的URN"; $postData = [ "author" => $personUrn, "lifecycleState" => "PUBLISHED", "specificContent" => [ "com.linkedin.ugc.ShareContent" => [ "shareCommentary" => [ "text" => "测试带可点击图片与跳转链接的帖子" ], "shareMediaCategory" => "ARTICLE", "media" => [ [ "status" => "READY", "description" => [ "text" => "自定义图片描述" ], "originalUrl" => "https://example.com/target-page", "title" => [ "text" => "目标页面标题" ], "thumbnails" => [ [ "resolvedUrl" => $imageUrn ] ] ] ] ] ], "visibility" => [ "com.linkedin.ugc.MemberNetworkVisibility" => "PUBLIC" ] ]; $ch = curl_init("https://api.linkedin.com/v2/ugcPosts"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer {$accessToken}", "Content-Type: application/json", "X-Restli-Protocol-Version: 2.0.0" ]); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); // 处理并输出响应 var_dump(json_decode($response, true)); ?>
常见问题排查
- 若提示URN无效:检查图片上传后的状态是否为
AVAILABLE,上传完成后需等待几秒让LinkedIn处理资源,再使用该URN。 - 链接无法跳转:确认
originalUrl是合法的HTTPS链接,LinkedIn会校验链接有效性。
内容的提问来源于stack exchange,提问作者Andy Wallace
相关产品推荐
相关产品推荐

