Получить список пользователей, которым понравились конкретные СМИ в Instagram
Используя Instagram API, мне нужно получить список пользователей, которым понравились определенные медиа.
Следующий вызов должен вернуть список всех пользователей в соответствии с документацией: https://api.instagram.com/v1/media/555/likes?access_token=ACCESS-TOKEN
Тем не менее, я получаю только 120 пользователей без параметров пагинации.
Есть ли способ продолжать запрашивать отдых?
Если вам нужен код:
String requestLikes = "https://api.instagram.com/v1/media/" + mediaID + "/likes?access_token=" + access_token + "&count=0";
// Create a request for the URL.
request = WebRequest.Create(requestLikes);
// Get the response.
response = request.GetResponse();
//Remaining calls
AddOrUpdateAppSettings("remainingCalls", response.Headers["X-Ratelimit-Remaining"]);
// Display the status.
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
reader = new StreamReader(dataStream);
// Read the content.
responseFromServer = reader.ReadToEnd();
1 ответ
К сожалению, они предоставляют только последние 120 лайков в порядке от самых новых до самых старых без нумерации страниц. Вы можете проверить это, запросив фотографию, а затем понравившуюся, и вы увидите, что ваша учетная запись находится в верхней части списка.
Единственный выход - настроить работу для периодического кэширования лайков, начинающихся вскоре после публикации фотографии. Поскольку вы всегда получаете самые новые 120, вы можете получить их таким образом. Вы можете создать подписку для пользователя, используя API в реальном времени и получить пинг, когда ваш пользователь публикует новую фотографию, а затем начать кэширование лайков. Рекомендуется снижать скорость - возможно, кешировать пару раз в первый час после публикации, а затем реже и реже, чем дольше.