Я использую Платформу разработки маркетинга LinkedIn, где я пытаюсь предоставить список URN компании для API Ad Analytics. Однако, когда я пытаюсь предоставить список URN компании, происходит сбой со статусом 400.
Документы конечной точки Analytics Finder
Мой запрос:
GET https://api.linkedin.com/v2/adAnalyticsV2?q=analytics&pivot=CAMPAIGN&dateRange.start.day=1&dateRange.start.month=1&dateRange.start.year=2017&timeGranularity=ALL&companies=urn:li:organization:1234,urn:li:organization:5678
Ответ:
{"message":"Array parameter 'companies' value 'urn:li:organization:1234,urn:li:organization:5678' is invalid. Reason: Deserializing output 'urn:li:organization:1234,urn:li:organization:5678' failed","status":400}
Я также пробовал URL-адрес, кодирующий URL-адрес и предоставляющий список с помощью параметра companies[0], как это делается в других примерах в документации.
companies[0]
Что правильный способ ввода массивов в API-интерфейс LinkedIn?
Редактировать: изменено accounts на companies
accounts
companies
Итак, версия протокола действительно дала мне несколько полезных идей. Существует несколько способов предоставления массивов в параметрах.
Из документов:
Для Restli V1.0 (используется по умолчанию)
GET GET https://api.linkedin.com/people?ids=1&ids=2&ids=3
Для Restli V2 .0, который можно использовать, установив следующий заголовок: X-RestLi-Protocol-Version: 2.0.0
X-RestLi-Protocol-Version: 2.0.0
Передать параметры в формате списка.
GET https://api.linkedin.com/v2/people?ids=List(1,2,3,4)
Однако мне не удалось заставить API Analytics Finder работа с Restli V2.0.
Вам необходимо предоставить список URN организации в кодировке URL для параметра accounts. Используя ваш запрос в качестве примера:
&accounts=List(urn%3Ali%3Aorganization%3A1234,urn%3Ali%3Aorganization%3A5678)