在 202307 之后的版本中,由于投影已被弃用,我们如何从 linkedin API 获取实际图像 URL

问题描述 投票:0回答:1

Linkedin API 的新版本中已弃用投影: https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/decoration

因此,为了获取实际的 URL 而不是 URN,我们不能使用投影,

我不知道如何在没有投影的情况下获取实际的 URL。

投影=(元素(*(logoV2(原始〜:playableStreams))))

linkedin-api
1个回答
0
投票

经典投影已从最新版本的 LinkedIn API 中删除,转而采用现场投影。我们找到了使用 LinkedIn Image API 获取图像 url 的解决方案。

您可以使用

fields=
将请求过滤到提供图像 URN 的
logoV2.original
字段。接下来将
digitalmediaAsset
替换为
image
。然后使用修改后的 URN,您可以查询图像 API 来获取下载 URL。见下图:

  1. 查询
    /rest/organizations
{
  "localizedName": "Smart Post App, LLC.",
  "logoV2": {
    "original": "urn:li:digitalmediaAsset:C560BAQGBzZXn5Schaw"
  },
  "id": 19205022
}
  1. digitalmediaAsset
    中的
    logoV2.original
    替换为
    image
var imageURN = response.logoV2.original;
imageURN = imageURN.Replace("digitalmediaAsset", "image");
imageURN = HttpUtility.UrlEncode(imageURN);
  1. 使用修改后的imageURN调用Image API
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 不会接受

:

图像API文档

现场投影文档

© www.soinside.com 2019 - 2024. All rights reserved.