cURL вызов на встречу API API «Ограничение скорости» без выполнения более 5 запросов - PullRequest
5 голосов
/ 05 ноября 2010

Я только начинаю возиться с очень, очень простым вызовом API Twitter (http://api.twitter.com/1/statuses/user_timeline.json), чтобы перенаправить мои твиты на мой сайт через cURL. Однако, использование страницы, которую еще никто не знает, (таким образом устраняявозможность непреднамеренного трафика), я получаю вещь превышения предела скорости, прежде чем у меня была возможность даже протестировать его. Он говорит, что он сбрасывается в 5 часов утра, поэтому я проверяю снова, и в течение минуты это работает, но потомон снова сказал мне, что мой предел скорости превышен. Несколько вопросов для всех, кто знает об API Twitter и / или cURL:

Во-первых, применяется ли ограничение скорости к моему серверу (а не к пользователю)?Я бы предположил, что так, но это, конечно, может усложнить задачу. Даже один вызов API на посетителя может на сайте с предельным трафиком легко превысить ограничение скорости за час. Есть ли способ связать вызов с посетителем,не сервер? Похоже, вероятно, нет, но я не совсем уверен, как работает весь API, и кажется, что cURL пропагандируется рядомтузы.Я знаю, что, если я использую JSON и AJAX, данные, которые я могу сделать, могут сделать этот запрос от пользователя, но просто ради аргумента, как насчет cURL?

Во-вторых, есть идеи, как я могу превзойтимой лимит скорости даже без обновления страницы?Я плачу за хостинг в другом месте, поэтому, возможно, я делю пространство сервера с другим сайтом, но мой сайт определенно имеет уникальный IP-адрес, так что должно ... это должно быть хорошо, верно?Так почему же я превышаю ограничение скорости, даже не запустив код (или запустив его один раз?)?

Вот что у меня есть для кода, если это помогает:

$ch=curl_init("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=screenname");
    curl_setopt_array($ch,array(
            CURLOPT_RETURNTRANSFER=>true,
            CURLOPT_TIMEOUT=>5,
        )
    );
$temp=curl_exec($ch);
curl_close($ch);
$results=json_decode($temp,true);

Кроме того, теперь я понял, что если Twitter возвращает ошибку ограничения скорости, он записывает ошибку в текстовом файле, а также время сброса ограничения.Глядя на этот файл, единственный раз, когда он обновляется (у меня нет его перезаписи, он просто добавляет), когда я загружаю страницу (что может быть один или два раза в час), так что это не похоже на что-то ещеиспользует эту страницу и звонит по этому URL.

Любая помощь?

1 Ответ

3 голосов
/ 05 ноября 2010

Аутентифицированные запросы должны считаться с лимитом пользователя 350 / час. Неаутентифицированные запросы засчитываются в лимит вашего IP-адреса 150 / час.

Если вы сталкиваетесь с ограничениями во время разработки, Twitter, как правило, вполне готов внести белый список IP-адресов серверов разработчиков.

http://dev.twitter.com/pages/rate-limiting

Некоторые приложения считают, что ограничение по умолчанию оказывается недостаточным. При таких обстоятельствах мы предлагаем белый список. Можно внести в белый список как учетные записи пользователей, так и IP-адреса. Каждому объекту из белого списка, будь то учетная запись или IP-адрес, разрешено 20 000 запросов в час. Если вы разрабатываете приложение и хотите, чтобы вас включили в белый список, заполните форму запроса для белого списка . Из-за большого количества запросов мы не можем ответить на них все. Если ваш запрос был одобрен, вы получите электронное письмо.

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