Ограничение Google Shortener API

Мы используем Google Shortener в наших проектах, похоже, у Google есть два ограничения:

  • 100 запросов на пользователя за 100 секунд
  • 1000000 запросов в день.
    ограничение Google

В 11:00 утра у нас есть задание cron, которое запускает код и требует короткого замыкания около 15 000 URL,

Вчера мы использовали только одну клавишу, но сегодня мы добавляем 6 ключей, чтобы обойти это ограничение, и каждую минуту используем одну из них со следующим кодом

    $googleAPIKeys = [
'KEY1CODE',
'KEY2CODE',
'KEY3CODE',
'KEY4CODE',
'KEY5CODE',
'KEY6CODE'
];
$roundRobinKey = date('i') % count($googleAPIKeys);
try {
$req = $client->post('https://www.googleapis.com/urlshortener/v1/url?key=' . $googleAPIKeys[$roundRobinKey], [
'json' => [
'longUrl' => $url
]
]);
} catch (ClientException $e) {
return $url;
}

$result = json_decode($req->getBody()->getContents());

Но все же столкнулся с 403 (ограничения превышают)
введите описание изображения здесь

введите описание изображения здесь

кажется странным, почему это происходит? Какое истинное ограничение укороченного сервиса Google?
как я могу обойти это ограничение?

Еще одна заметка: в сценарии с одним ключом, если вы превышаете ограничение (100 на 100 секунд), если вы пытаетесь использовать этот ключ снова через 5 минут, все еще сталкиваясь с проблемой 403 ограничения превышения !!!
похоже гугл ограничения не такие как сказали !!!

Обновить

После прочтения Стандартные параметры запроса а также Ограничение использования API
Я изменил свой запрос на следующий

  $req = $client->post('https://www.googleapis.com/urlshortener/v1/url?quotaUser=' . $userID . '&key=' . $myKey, [
'json' => [
'longUrl' => $url
]
]);

Который userID уникальный идентификатор пользователя на запрос (потому что мы генерируем каждый URL для каждого пользователя). но все еще сталкиваюсь с 403 !!!

введите описание изображения здесь

Любая идея?

1

Решение

Ограничение будет основано на проектах и ​​пользователях. однако он также может быть основан на IP.

работать вокруг

  1. создавать несколько проектов на консоли разработчиков Google. каждый с одним ключом API.
  2. отправьте необязательный идентификатор пользователя parm с каждым запросом, используя случайную величину.
  3. проверьте вкладку квот в консоли разработчиков, посмотрите, сможете ли вы увеличить квоту, она будет иметь значок карандаша.

Обратите внимание, что время, которое вы заблокированы, должно составлять около часа.

quotaUser Альтернатива userIp. Позволяет применять квоты для каждого пользователя
из серверного приложения даже в случаях, когда IP пользователя
адрес неизвестен. Это может произойти, например, с приложениями
которые запускают задания cron в App Engine от имени пользователя. Ты можешь выбрать
любая произвольная строка, которая однозначно идентифицирует пользователя, но это
ограничено до 40 символов. Переопределяет userIp, если оба предоставлены. Учить
больше об использовании Capping API.

Вы добавляете это как дополнительный параметр в свой запрос

quotaUser=xxxx
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]