Я хочу получить данные конкретного пользователя через API. По сути, мне нужно узнать, сколько ответов пользователь оставил с момента регистрации на форуме. Я использовал следующий код (по сути, я получил все записи user_actions, где action_type=5, и затем вывел количество таких записей). Итоговый результат не совпадает с тем, что я вижу в веб-интерфейсе. Может ли кто-нибудь объяснить, почему это может происходить?
import requests, time
defaultHost = #ваш_хост_по_умолчанию
# Заголовки для аутентификации
headers = {
'Api-Key': #ВАШ_API_КЛЮЧ,
'Api-Username':#ВАШ_ИМЯ_ПОЛЬЗОВАТЕЛЯ_API
}
# Увеличиваем смещение на 30 каждый раз. Цикл должен прерваться, когда количество элементов в ответе будет меньше 30
offset = 0
data_dict ={"user_actions":[]}
username = #имя_пользователя_для_которого_нужно_получить_данные
# filter=5 # Для события "пользователь ответил на тему"
while True:
time.sleep(0.2)
endpoint = f'https://{defaultHost}/user_actions.json?username={username}&offset={offset}&filter=5'
# Выполняем запрос
response = requests.get(endpoint,
headers=headers)
# Проверяем ответ
if response.status_code == 200:
data = response.json()
num_elements = len(data["user_actions"])
data_dict["user_actions"].extend(data["user_actions"])
offset+=30
if num_elements<30:
break
else:
print(f'Ошибка: {response.status_code}')
break
print(len(data_dict["user_actions"]))