升级LinkedIn API新版本后,如何不使用projection获取企业logo完整URL?
解决方案:替代LinkedIn API的projection参数获取企业Logo
1. 使用官方替代方案:字段选择(Field Selectors)
LinkedIn API新版本用fields参数完全替代了projection,你可以直接在请求中指定需要返回的字段路径,格式和原projection规则一致,仅需替换参数名。
针对你的场景,修改后的Laravel请求代码如下:
// Laravel 代码 $json = Http::withToken(...) ->get("organizations/$id", [ 'fields' => 'logoV2(original~:playableStreams)' ]) ->json();
该请求会返回和旧版本projection参数一致的logoV2数据结构,包含原始流的完整URL。
2. 若返回Logo URN,使用Vector Asset API正确调用
如果organizations端点返回的logoV2仅包含URN(格式如urn:li:vectorAsset:XXX),你需要通过Vector Asset API获取实际URL,正确调用方式如下:
// 从organizations接口拿到的logoV2 urn示例:$logoUrn = 'urn:li:vectorAsset:12345' $assetId = str_replace('urn:li:vectorAsset:', '', $logoUrn); $json = Http::withToken(...) ->get("vectorAssets/$assetId", [ 'fields' => 'playableStreams' ]) ->json(); // 提取原始URL $originalUrl = $json['playableStreams'][0]['url'] ?? null;
注意需移除URN前缀urn:li:vectorAsset:,再将剩余ID作为路径参数传入vectorAssets端点。
验证权限
确保你的API应用已申请r_organization_social或r_organization_admin权限,这两个权限是访问企业logo信息的必要条件,权限不足会导致字段无法正常返回。
内容的提问来源于stack exchange,提问作者Bastiaan Dewaele
相关产品推荐
相关产品推荐

