Я пытаюсь использовать API обновлений в реальном времени, чтобы получить все изображения с определенным тегом по мере их поступления. Поскольку обновления из этого API действительно только скажу вам, что существует новый контент (но не то, что он есть), я запрашиваю последние медиа с моим тегом всякий раз, когда получаю уведомление о том, что что-то изменилось.
Проблема, с которой я сталкиваюсь, заключается в том, что я постоянно получаю дублирующиеся носители, возвращаемые этим запросом. В документации говорится, что этот API выполняет разбиение на страницы, но я не могу заставить его работать вообще.
Документация здесь говорит использовать min_id
и max_id
в вашей строке запроса для управления разбиением на страницы, однако она говорит:
-
MIN_ID - вернуть носитель до этого min_id.
-
MAX_ID - возвращаемый носитель после этого max_id.
Это кажется обратным (обычно min должен возвращать элементы выше минимума, а max должен возвращать элементы ниже максимума, так что когда вы укажете оба, вы получите ограниченный диапазон).
Фактический JSON, который я возвращаю из своих запросов, включает в себя объект разбивки на страницы:
"pagination": {
"next_max_tag_id": "1387272337517",
"deprecation_warning": "next_max_id and min_id are deprecated for this endpoint; use min_tag_id and max_tag_id instead",
"next_max_id": "1387272337517",
"next_min_id": "1387272345517",
"min_tag_id": "1387272345517",
"next_url": "https://api.instagram.com/v1/tags/cats/media/recent?access_token=xxx&max_tag_id=1387272337517"
}
Параметр, указанный в свойстве next_url
, равен max_tag_id
, а не max_id
, как указано в документации.
Также существует предупреждение об устаревании, в котором указано, что next_max_id
и min_id
устарели, но поскольку в объекте с объективом есть такие объекты с именами, я не знаю, соответствуют ли параметры запроса или свойства объекта которые устарели..
Я бы подумал, что это означает свойства, потому что строка запроса никогда не использовала параметр next_max_id
, но затем сообщение об отказе говорит использовать min_tag_id
и max_tag_id
, и нет свойства max_tag_id
в разбивке на страницы объект (только a next_max_tag_id
).
Независимо от всей этой противоречивой документации, кажется, не имеет значения, что я передаю в строке запроса - я продолжаю получать повторяющиеся носители в последующих запросах. Может ли кто-нибудь помочь мне понять этот API? Все, что я действительно хочу, это получить тегированные носители, новые с момента моего последнего запроса.