Pull to refresh

Чистим телефоны от скобок, тире в Битрикс24

Всем привет! Решил поделиться небольшим полезным скриптом для Bitrix24. Часто бывает, что при импорте заносятся телефоны со скобками, тире и прочее: +7 (999) 123-33-44


Битрикс24 при звонках распознает номера формата 79991233344. И потому появляется куча дубликатов, неразберихи и каша. Простой скрипт на php проходит по всем контактам и "чистит их".



$start = 600;

for($i=$start;$i<($start+50);$i++) {
    echo "<br> >> ".($i*2)."<br>";
    $get = bx_call_webhook("crm.contact.get",array("id"=>$i*2));
    // print_r($get);

    $phone = array();
    foreach($get["PHONE"] as $k => $row) {
        $num = str_replace(" ","",$row["VALUE"]);
        $num = str_replace("+","",$num);
        $num = str_replace("-","",$num);
        $num = str_replace("(","",$num);
        $num = str_replace(")","",$num);
        $s = bx_call_webhook("crm.contact.update",array("id"=>$i*2,"fields"=>array("PHONE"=>array($k => array("ID"=>$row["ID"],"VALUE"=>$num))),"params"=>array("REGISTER_SONET_EVENT"=>"N")));

        print_r($s);
        echo "<br> ".$num."<br>";
    }
    sleep(1);
}

Сразу говорю: есть что доработать, но уверен и это сэкономит вам время. Sleep'ы как паузы нужны, чтобы Битрикс24 нас не заблокировал — в 1 секунду не больше 2 запросов. Контакты в битриксе только четные, поэтому умножается на 2.


bx_call_webhook — функция выполняющая запросы и возвращает ответ
Используется вебхук.


function bx_call_webhook($method,$arr){
    $queryUrl = 'https://**********.bitrix24.ru/rest/***/*************/'.$method.'/';
    $queryData = http_build_query($arr);
    $curl = curl_init();
    curl_setopt_array($curl, array(
    CURLOPT_SSL_VERIFYPEER => 0,
    CURLOPT_POST => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $queryUrl,
    CURLOPT_POSTFIELDS => $queryData,
    ));
    $result = curl_exec($curl);
    curl_close($curl);
    $result = json_decode($result, 1);
    $result = $result["result"];
    return $result;
    sleep(1);
}

Сам скрипт ограничен во времени, поэтому с этим еще можно поиграть.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.