不使用投影检索LinkedIn公司徽标V2(完整URL)

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

我正在使用 LinkedIn Rest API 202306,并且我正在尝试更新到最新版本。

但是具有以下端点:

组织 = https://learn.microsoft.com/en-us/linkedin/marketing/integrations/community-management/organizations/organization-lookup-api?view=li-lms-2023-06&tabs=http

我使用投影来检索公司徽标的完整 URL。

// Laravel
$json = Http::withToken(...)
   ->get("organizations/$id",['projection' => '(logoV2(original~:playableStreams))')
   ->json();

这适用于202306,但是当您升级到更高版本时。

我收到以下错误:

此端点不允许使用投影参数。

在阅读文档时,LinkedIn 正计划全面淘汰投影的使用。

有人可以建议一个替代解决方案来获取公司徽标的完整 URL 吗?

我已经尝试过其他端点来检索原始公司 URL。

https://learn.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/vector-asset-api?view=li-lms-2022-11&tabs=http

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.