Я копирую контакты из Propertyware в Podio, используя задание cron, и я уже скопировал контакты в файл contacts.json
, чтобы уменьшить количество вызовов API Podio. Однако после копирования 2000+ контактов мой файл JSON опустошается, и API начинает копирование с первого или первого контакта. И контакты копируются порциями по 200 контактов в каждом.
Я не могу найти причину, почему мой файл пустеет через некоторое время?
Вот код
<code>if (!file_exists(PROPERTYWARE_CONTACTS_FILE_NAME)) {
file_put_contents(PROPERTYWARE_CONTACTS_FILE_NAME, "[]");
}
$response = HttpClient(HTTP_GET, PROPERTYWARE_CONTACTS_URL);
$response = json_decode( preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $response), true );
$saved_records = json_decode( preg_replace('/[\x00-\x1F\x80-\xFF]/', '', file_get_contents(PROPERTYWARE_CONTACTS_FILE_NAME)), true );
$incoming_records = array();
$different_from_saved = array();
$old_items = array();
foreach ($response as $key => $val) {
if ($key == "records") {
$incoming_records = $val;
}
}
foreach ($incoming_records as $incoming_record) {
$add_it = true;
foreach ($saved_records as $saved_record) {
if ($saved_record == $incoming_record) {
$add_it = false;
array_push($old_items, $incoming_record);
}
}
if ($add_it) {
array_push($different_from_saved, $incoming_record);
}
}
if (count($different_from_saved) > 0) {
print "\nDifferent Data";
}
updateInPodio($different_from_saved, CONTACTS_APP_ID, $old_items);
function updateInPodio($items, $app_id, $old_items)
{
$old_items_count = count($old_items);
$new_items_count = count($items);
$pushed_into_podio = 0;
$saveToFile = [];
foreach ($old_items as $old_item) {
array_push($saveToFile, (object)$old_item);
}
try {
foreach ($items as $item) {
$phones = [];
$emails = [];
$fields = [];
$fields['propertyware'] = "YES";
if(!empty($item[0]))
$fields['entitiy-id'] = $item[0];
if(!empty($item[1]))
$fields['first-name'] = $item[1];
if(!empty($item[2]))
$fields['last-name'] = $item[2];
if(!empty($item[3]))
$fields['company'] = $item[3];
$response = PodioItem::create($app_id, ["fields" => $fields]);
$pushed_into_podio++;
array_push($saveToFile, (object)$item);
}
file_put_contents(PROPERTYWARE_CONTACTS_FILE_NAME, json_encode($saveToFile));
} catch (Exception $exception) {
file_put_contents(PROPERTYWARE_CONTACTS_FILE_NAME, json_encode($saveToFile));
print "<pre>";
print_r($exception->getMessage());
print "
";
$ to = "abdulhaye111@gmail.com";
$ subject = "Исключение при отправке контактов в Podio";
$ message = "
OLD_CONTACTS: $ old_items_count
NEW_CONTACTS: $ new_items_count
PUSHED_CONTACTS: $ отправлено_into_podio
*8 1019 *»$ exception-> GetMessage ().
$ header = "From: noreply@propertymanagementoh.com \ r \ n";
$ header. = "MIME-Version: 1.0 \ r \ n";
$ header. = "Content-type: text / html \ r \ n";
$ retval = mail ($ to, $ subject, $ message, $ header);
if ($ retval == true) {
echo "Сообщение успешно отправлено ...";
} еще {
echo "Сообщение не может быть отправлено ...";
}
}
file_put_contents (PROPERTYWARE_CONTACTS_FILE_NAME, json_encode ($ saveToFile));
print "
OLD_ITEMS: $ old_items_count
NEW_ITEMS: $ new_items_count
PUSHED_ITEMS: $ pressed_into_podio
";
заголовок ("Местоположение:
http://propertymanagementoh.com/dev/building.php");
заголовок ("Местоположение:
http://propertymanagementoh.com/dev/lease.php");
заголовок ("Местоположение:
http://propertymanagementoh.com/dev/leasePayments.php");
заголовок ("Местоположение:
http://propertymanagementoh.com/dev/protfolioBills.php");
заголовок ("Местоположение:
http://propertymanagementoh.com/dev/units.php");
}