Фейсбук График IP-фильтрация - PullRequest
0 голосов
/ 11 марта 2019

Я прочитал несколько постов об ограничениях 600 запросов за 600 секунд, которые Facebook Graph Api устанавливает для запросов.

Этот вопрос касается получения разъяснений по проблеме, с которой я сталкиваюсь. Я делаю запросы, довольно простые для FB Graph:

Итак, из моего дома я бегу:

curl https://graph.facebook.com/v2.0/?id=https://www.example.com/article/the-name-of-the-article/

(иметь косую черту нетривиально)
который дает мне пустые результаты:

{
   "share": {
      "comment_count": 0,
      "share_count": 605
   },
   "og_object": {
      "id": "XXXXX6ZZ70301002",
      "description": "text",
      "title": "title",
      "type": "article",
      "updated_time": "2019-03-09T00:15:06+0000"
   },
   "id": "https://www.example.com/article/the-name-of-the-article"
}

Я взял URL-адрес из кода js на сайте. Вместо этого, запуск сканера Scrapy по тому же URL-адресу, который все еще выполняется из домашней сети, дает мне то же, что и выше:

{
   "share": {
      "comment_count": 0,
      "share_count": 605
   },
   "og_object": {
      "id": "XXXXX6ZZ70301002",
      "description": "text",
      "title": "title",
      "type": "article",
      "updated_time": "2019-03-09T00:15:06+0000"
   },
   "id": "https://www.example.com/article/the-name-of-the-article"
}

Что сейчас более чем нормально, и система js-code-scraping, похоже, работает. Результаты содержат всю информацию из js звонков в FB Graph.

На стороне сервера сканер работает, как и ожидалось, но при более внимательном рассмотрении результатов информация, полученная в результате выполнения кода js, отсутствует. Я проверил весь код, в другом URL, который также запускает действия js для предоставления html-контента, и код на самом деле работает нормально.

Затем, повторяя простое:

curl https://graph.facebook.com/v2.0/?id=https://www.example.com/article/the-name-of-the-article

на этот раз с ip сервера отвечает:

{
  "error": {
    "message": "(#4) Application request limit reached",
    "type": "OAuthException",
    "is_transient": true,
    "code": 4,
    "fbtrace_id": "ErXXXXZZrOn"
  }
}

Что касается ip-блоков, код не смог доставить более 600 запросов. На самом деле он отправил менее 10 запросов к графику API.

Очевидно, что информация, поступающая от js-запросов к Fb Graph Api со стороны сервера, отсутствует.

Я пытался с разных серверов, от разных провайдеров, проверить, был ли Ip-фильтр у облачных провайдеров, но, похоже, это не так, поскольку на каждом сервере результаты одинаковы.

Что здесь происходит?
Почему запросы js не получают действительные данные ответа, когда они запускаются с IP-адресов сервера? (поскольку он выдает ошибку OAuthException: предел запроса приложения достигнут также с помощью команды curl)

Спасибо за любую подсказку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...