API организации LinkedInPageStatistics возвращает 400 PARAM_INVALID для timeIntervals (REST.li 2.0)Python

Программы на Python
Ответить
Anonymous
 API организации LinkedInPageStatistics возвращает 400 PARAM_INVALID для timeIntervals (REST.li 2.0)

Сообщение Anonymous »

Я вызываю конечную точку организации LinkedIn PageStatistics с помощью API REST.li 2.0, но продолжаю получать ошибку 400 PARAM_INVALID, связанную с параметром timeIntervals.
Согласно официальной документации (li-lms-2025-11), timeIntervals — это объект, а не список.
Ответ на ошибку

Код: Выделить всё

{
"errorDetailType": "com.linkedin.common.error.BadRequest",
"message": "Invalid param. Please see errorDetails for more information.",
"errorDetails": {
"inputErrors": [
{
"description": "Invalid value for param; wrong type or other syntax error",
"input": {
"inputPath": {
"fieldPath": "timeIntervals"
}
},
"code": "PARAM_INVALID"
}
]
},
"status": 400
}
Код

Код: Выделить всё

def fetch_linkedin_analytics_and_save(user, account):
organization_urn = f"urn:li:organization:{account.page_id}"
access_token = account.access_token
start_ms = int(
(datetime.now() - timedelta(days=90)).timestamp() * 1000)
end_ms = int(datetime.now().timestamp() * 1000)

base_url = "https://api.linkedin.com/rest/organizationPageStatistics"

LINKEDIN_API_VERSION = os.environ.get("LINKEDIN_API_VERSION", "202511")

headers = {
"Authorization": f"Bearer {access_token}",
"Linkedin-Version": LINKEDIN_API_VERSION,
"X-Restli-Protocol-Version": "2.0.0",
"Content-Type": "application/json"
}

time_intervals_str = f'(timeGranularityType:DAY,timeRange:(start:{start_ms},end:{end_ms}))',
params = {
"q": "organization",
"organization": organization_urn,
'timeIntervals.timeGranularityType': 'DAY',
'timeIntervals.timeRange.start': start_ms,
'timeIntervals.timeRange.end': end_ms
}
print(params)

response = requests.get(base_url, headers=headers, params=params)

if response.status_code != 200:
print(response.text)
Попытка 1 — строка объекта REST.li

Код: Выделить всё

time_intervals_str = (
f"(timeGranularityType:DAY,"
f"timeRange:(start:{start_ms},end:{end_ms}))"
)

params = {
"q": "organization",
"organization": organization_urn,
"timeIntervals": time_intervals_str
}
print(time_intervals_str)
#(timeGranularityType:DAY,timeRange(start:1758957224365,end:1766733224365))
Попытка 2 – Сведение параметров

Код: Выделить всё

params = {
"q": "organization",
"organization": organization_urn,
"timeIntervals.timeGranularityType": "DAY",
"timeIntervals.timeRange.start": start_ms,
"timeIntervals.timeRange.end": end_ms
}
Ваша помощь будет оценена
Ссылка
https://learn.microsoft.com/en-us/linke ... &tabs=curl

Подробнее здесь: https://stackoverflow.com/questions/798 ... timeinterv
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»