-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate_multilist.php
64 lines (54 loc) · 2.49 KB
/
update_multilist.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
use AmoCRM\Exceptions\AmoCRMApiException;
use AmoCRM\Models\CustomFieldsValues\MultitextCustomFieldValuesModel;
use AmoCRM\Models\CustomFieldsValues\ValueCollections\MultitextCustomFieldValueCollection;
use AmoCRM\Models\CustomFieldsValues\ValueModels\MultitextCustomFieldValueModel;
require __DIR__.'/vendor/autoload.php';
require __DIR__ . "/api_connect.php";
$contactsService = $apiClient->contacts();
// Получаем список из 50 контактов
try {
$contactsCollection = $contactsService->get();
update_multilist($contactsCollection, $apiClient);
for ($i = 0; $i < 23; $i++) {
$contactsCollection = $contactsService->nextPage($contactsCollection);
update_multilist($contactsCollection, $apiClient);
print "Страница {$i}\n";
}
} catch (AmoCRMApiException $e) {
print "Code: ".$e->getCode()." Error: ".$e->getMessage();
die;
}
function update_multilist($contactsCollection, $apiClient) {
// Инициализация класса коллекции контактов
foreach ($contactsCollection->all() as $key => $value) {
$customFields = $value->getCustomFieldsValues();
if (isset($customFields)){
$phoneField = $customFields->getBy('fieldCode', 'PHONE');
// Проверяем, есть ли у пользователя поле PHONE
if (empty($phoneField)) {
$phoneField = (new MultitextCustomFieldValuesModel())->setFieldCode('PHONE');
$customFields->add($phoneField);
}
}
else {
$customFields = new \AmoCRM\Collections\CustomFieldsValuesCollection();
$phoneField = (new MultitextCustomFieldValuesModel())->setFieldCode('PHONE');
$customFields->add($phoneField);
$value->setCustomFieldsValues($customFields);
}
// Добавляем новое значение мультисписка типа телефон
$phoneField->setValues(
(new MultitextCustomFieldValueCollection())
->add(
(new MultitextCustomFieldValueModel())
->setEnum('WORKDD')
->setValue('+7912'.rand(500,1000))
)
);
print "Message: У контакта под id: {$value->getId()} был обновлен телефон\n";
}
// Обновляем список контактов
$apiClient->contacts()->update($contactsCollection);
sleep(1);
}