Linkedin API 的新版本中已弃用投影: https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/decoration
因此,为了获取实际的 URL 而不是 URN,我们不能使用投影,
我不知道如何在没有投影的情况下获取实际的 URL。
投影=(元素(*(logoV2(原始〜:playableStreams))))
经典投影已从最新版本的 LinkedIn API 中删除,转而采用现场投影。我们找到了使用 LinkedIn Image API 获取图像 url 的解决方案。
您可以使用
fields=
将请求过滤到提供图像 URN 的 logoV2.original
字段。接下来将 digitalmediaAsset
替换为 image
。然后使用修改后的 URN,您可以查询图像 API 来获取下载 URL。见下图:
/rest/organizations
{
"localizedName": "Smart Post App, LLC.",
"logoV2": {
"original": "urn:li:digitalmediaAsset:C560BAQGBzZXn5Schaw"
},
"id": 19205022
}
digitalmediaAsset
中的 logoV2.original
替换为 image
var imageURN = response.logoV2.original;
imageURN = imageURN.Replace("digitalmediaAsset", "image");
imageURN = HttpUtility.UrlEncode(imageURN);
var client = new RestClientWrapper();
var resource = $"https://api.linkedin.com/rest/images/{imageURN}?fields=downloadUrl";
var headers = RestHeaders.GetCommonHeaders(accessToken);
var response = await client.GetAsync<LinkedInImageObject>(resource, headers);
return response?.DownloadUrl;
{
"downloadUrl": "https://media.licdn.com/dms/image/C560BAQGBzZXn5Schaw/company-logo_400_400/0/1676652154924?e=1714003200&v=beta&t=-efWsvFC_0d51teSWBLv3YfF8cUMvhe66hH6XUjIseQ"
}
我们确实必须对图像 URL 请求进行 URL 编码,因为 v2 API 不会接受
:
。