<code lang="php">
$num=0;
$key = dadataKey($file);
$maxKey = count($key);
$n = 0;
$token = $key[$n]['api'];
$secret = $key[$n]['secret'];
$dadata = new Dadata($token, $secret);
$dadata->init();
foreach($itog as $dates){
usleep(500000);
$result = $dadata->clean("address", $dates['ADDRESS']);
if($result['error']) {
$log = date('Y-m-d H:i:s') . ' ' . print_r($result, true);
file_put_contents(__DIR__ . '/log.txt', $log . PHP_EOL, FILE_APPEND);
if($n <= $maxKey) {
for($i = $n;$n<=$maxKey;$i++){
$dadata->close();
$n++;
sleep(15);
//$token = changeToken($key, $n);
//$secret = changeSecret($key, $n);
$dadata = new Dadata($key[$n]['api'], $key[$n]['secret']);
$dadata->init();
$result = $dadata->clean("address", $dates['ADDRESS']);
if ($result['error']) {
$log = date('Y-m-d H:i:s') . ' ' . print_r($result, true);
file_put_contents(__DIR__ . '/log.txt', $log . PHP_EOL, FILE_APPEND);
continue;
} else {
break;
}
}
} else {
pr('Кончились ключи');
return;
}
} else {
//запись в базу
$num++;
}
}
pr("вылетел в конце");
$dadata->close();
</code>
Проблема теперь кроется в том, что сама Dadata не дает большое 3000 записать, А потом блочит ключи или просто по каким-то причинам выдает ощибку, хотя ключ не использовался в течении дня ни разу.
Но это наверное уже другой вопрос)
function changeToken($keys, $j) {
$token = $keys[$j]['api'];
return $token;
}
function changeSecret($keys, $j) {
$secret = $keys[$j]['secret'];
return $secret;
}
if($n <= $maxKey) {
//цикл по смене ключей
} else {
return:
}
403 это что кончился лимит на день