Возвращает ли Instagram ответ HTTP 500 из-за ограничения скорости и/или какой-либо формы фильтрации запросов?

Я разрабатываю инструмент для проверки целостности ссылок на веб-странице.

Я заметил, что различные URL-адреса Instagram будут возвращать ответ HTTP 500 в тех случаях, когда при посещении данного URL-адреса в браузере будет получен ответ HTTP 200, сопровождаемый ожидаемым ресурсом.

Это происходит при запросе обычных URL-адресов Instagram, как если бы вы были пользователем браузера, а не при использовании REST API.

Типичный запрос/ответ с использованием cURL:

curl -v http://instagram.com/p/YKTkxHBA-P/
* About to connect() to instagram.com port 80 (#0)
*   Trying 54.225.159.246... connected
> GET /p/YKTkxHBA-P/ HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: instagram.com
> Accept: */*
> 
< HTTP/1.1 500 Server Error
< Cache-Control: no-cache
< Content-Type: text/html
< Date: Tue, 15 Oct 2013 08:31:09 GMT
< Server: nginx
< Content-Length: 87
< Connection: keep-alive
< 
<html><body><h1>500 Server Error</h1>
An internal server error occured.
</body></html>
* Connection #0 to host instagram.com left intact
* Closing connection #0

Некоторое время в таких случаях я получал ответы HTTP 200, но теперь постоянно получаю ответы HTTP 500.

Все это специфично для данного хоста; такие URL-адреса, даже при отправке запросов с помощью cURL, будут возвращать ответы HTTP 200 от других компьютеров.

Из-за того, что это зависит от хоста, отправляющего запросы, я подозреваю, что происходит форма ограничения скорости или фильтрации запросов по IP, однако я не могу найти документацию по этому поводу.

Будет ли Instagram официально возвращать ответ HTTP 500, как указано выше, из-за отказа в доступе к данному IP-адресу?


person Jon Cram    schedule 15.10.2013    source источник
comment
У меня такая же проблема. Это то, что вы (мы) предполагаете? Ака, когда ваш IP забанят, вы получите 500?   -  person janosrusiczki    schedule 06.11.2013
comment
@kitsched Да, я предполагаю, что заблокированный IP-адрес получает ответы HTTP 500. Это единственный вывод, к которому я могу прийти с имеющейся у меня информацией. Я допускаю, что информация, которой я располагаю, может быть неполной.   -  person Jon Cram    schedule 07.11.2013
comment
То же самое здесь, о предположениях, я имею в виду. Я отправил им запрос/вопрос с просьбой разбанить мой IP. Мне любопытно, произойдет ли что-нибудь. Спасибо за Ваш ответ.   -  person janosrusiczki    schedule 07.11.2013
comment
@JonCram Та же проблема. Вы нашли настоящую причину этой ошибки? Я могу воспроизвести эту ошибку на отдельном сервере. Все запросы API работают нормально на других серверах. Похоже на бан в инстаграме, но о бане не уведомили. И иногда я могу сделать успешный запрос к Instagram API, но это срабатывает очень редко...   -  person Michael Kalygin    schedule 19.03.2014
comment
Я теперь внезапно получаю это также. Похоже, сейчас это может быть ошибка на стороне Instagram. Мне кажется странным, что он работает в моем веб-браузере, но не на моем сервере. Использование того же URL.   -  person Francis Pelland    schedule 19.03.2014
comment
Я также получаю 500 на отдельном сервере, но не на другом. Работает в веб-браузере с тем же URL.   -  person Mark    schedule 20.03.2014
comment
У меня тоже такая же проблема с кодом 500! У кого-нибудь есть решение или статус Instagram API?   -  person Kim    schedule 21.03.2014
comment
Я отправил отчет об ошибке и получил краткий ответ о том, что они изучают его. Если вы столкнулись с этой проблемой, я бы отправил подробное сообщение (выходные данные curl, затронутые IP-адреса), а также по официальному каналу, чтобы разработчики платформы имели лучшее представление о том, кто затронут, и, надеюсь, как решить проблему.   -  person Mark    schedule 21.03.2014
comment
Та же проблема здесь. Это не всегда 500, иногда API работает так, как ожидалось, и возвращает правильный результат, но примерно в 70% случаев возвращается 500. Я мог предположить, что ip забанен, но, возможно, информация не распространяется на все серверы, которые у них есть для балансировки нагрузки. :-/ Я также отправил отчет об ошибке, ответа пока нет. @Mark: тебе повезло?   -  person ivicaa    schedule 24.03.2014
comment
@ivicaa Нет :-/ проблема не устранена, и мы больше ничего не слышали от Instagram.   -  person Mark    schedule 24.03.2014
comment
Для протокола: мои 500 кодов возврата постоянны со вчерашнего дня. Ни один вызов API к Instagram больше не работает. Всегда 500. Поддержка Instagram не отвечает. :-(   -  person ivicaa    schedule 05.04.2014
comment
@Mark Куда вы сообщили об этой проблеме? Получали ли вы какие-либо новости из Instagram? Мне нигде не отвечают... Странно. Спасибо.   -  person Michael Kalygin    schedule 07.04.2014
comment
@MichaelM.Kalygin Я воспользовался кнопкой «Сообщить о проблеме» на странице instagram.com/developer/clients/manage   -  person Mark    schedule 08.04.2014


Ответы (6)


Это ограничение скорости IP. Если вы хотите пропустить часть, где вы связываетесь с Instagram, и дождаться, когда команда обезьян, которая работает там, решит проблему, просто назначьте 1000 IP-адресов своему серверу и прокручивайте их случайным образом для ваших запросов. Вы больше не увидите 500-х.

Ваше здоровье.

person user3482950    schedule 31.03.2014
comment
Многие люди начинают получать эти 500, когда вы тестируете интеграцию API. Поскольку во время тестирования вы, скорее всего, снова и снова запрашиваете одни и те же данные страницы Instagram, Instagram считает, что это бот, и продвигает IP-адрес, и именно здесь вы начинаете видеть, что 1/10 ваших запросов принимается. Я поддерживаю свой ответ, это самый простой способ решить эту проблему, поскольку их API - это куча дерьма без реальной поддержки, которая готова и желает вам помочь. - person user3482950; 03.04.2014

Буквально вчера я получил письмо от службы поддержки Instagram.

...
Привет,

Мы внесли некоторые изменения в конфигурацию нашего сервера. Не могли бы вы проверить, по-прежнему ли вы видите ошибку 500?

Спасибо,
...

... ну, я был на 100% уверен, что эти 500 человек не пришли из-за ограничения скорости IP-адреса IG, потому что они также не были возвращены заранее.

Я проверял лог-файлы и нашел пару 502 (Bad Gateway) и "host unreachables", хотя не более 500 как таковых, после 2014-04-14 18:28:56 (PST) .

Похоже, спустя почти месяц они наконец-то разобрались... ^_^

person Soo Star    schedule 16.04.2014

У меня была точно такая же проблема - к сожалению, ее никак не обойти. Это происходит из-за двух многочисленных запросов. Сначала я думал, что это мой IP-адрес или, возможно, мой UDID, пока я не вошел в свое приложение со своего телефона и с моего домашнего IP-адреса, но с использованием другого идентификатора Instagram, и, наконец, оно снова заработало, как и ожидалось. В конце концов, со временем я снова смог использовать свой собственный идентификатор, но с ограниченными запросами. Я не совсем уверен, как работает алгоритм, но чем больше времени шло, тем больше запросов я мог использовать снова.

Кроме того, это происходит в режиме реального времени на реальном iPhone в реальном приложении, а не на симуляторе iOS или консоли API Instagram, к вашему сведению.

Основной момент: лимит запросов зависит от пользователя (5000 запросов в час на одного пользователя)... ограничений на скорость передачи IP-адресов нет.

Надеюсь это поможет :)

Клейтон

person rockandride    schedule 19.08.2014

У меня такая же проблема. Как я понял, вам нужно получить дополнительный доступ к API, я имею в виду, что режим песочницы в вашем приложении не позволяет вам использовать весь API. Чтобы получить дополнительные разрешения, перейдите в настройки клиента, вкладка «Премии».

person DorianMood    schedule 23.12.2016

Кажется, это связано с версией curl, у меня также возникла та же проблема с v 7.22.0 на 4 разных машинах с 10 разными IP-адресами, а v7.30.0 и v7.19.7 работают как часы. В настоящее время проводится дальнейшее расследование.

person Michael de Menten    schedule 11.04.2014

Я почти на 100% уверен, что это происходит из-за того, что домен/IP-адрес заблокирован API Instagram.

Причина:

  1. Работает для получения JSON в браузере. Не работает получение cURL из веб-сервиса.
  2. Я скопировал свое точное приложение из своего основного домена (если приложение не работало) в другой домен. То же приложение работало.

Странно то, что вы получаете ответ «Внутренняя ошибка 500», а не сообщение «Ваш IP заблокирован».

person Kim    schedule 27.03.2014
comment
Но как объяснить, что иногда запрос работает с одного и того же айпи, а иногда нет. Более того, каковы точные критерии бана?? :-/ - person ivicaa; 29.03.2014