Помощь Как выполнить url запрос Bitrix?

dgkk

Профессор
Регистрация
16 Дек 2012
Сообщения
117
Реакции
47
Всем привет!
Подскажите, как выполнить URL запрос после регистрации пользователя в 1С-Битрикс?
Пытался так:
Код:
AddEventHandler("main", "OnAfterUserRegister", Array("Unisender", "OnAfterUserRegisterHandler"));
class Unisender
{
    function OnAfterUserRegisterHandler(&$arFields)
    {
            $unisender = file_get_contents('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[Name]='.$arFields["NAME"].'');
            return $unisender;
   }
}
Но URL не выполняется.
Внутри функции пытался выполнить через cURL

Вот так работает
Код:
$ch = curl_init('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[Name]='.$arFields["NAME"].'');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, 0);

        $data = curl_exec($ch);
        curl_close($ch);
Моих знаний не хватает, чтобы разобраться в чем проблема. После выполнения URL должен создаваться подписчик в Unisender.
Код:
$arFields["EMAIL"] = 'cmsjdk4tdwzj@mail.ru';
$arFields["NAME"] = 'test1';

$info = file_get_contents('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[Name]='.$arFields["NAME"].'');
//$info = json_decode($info, true);
print_r($info);
Но так работает просто при загрузке страницы, а должно после регистрации пользователя. Читал в доках про стандартный метод выполнения URL, но как его реализовать не понял.
 
Всем привет!
Подскажите, как выполнить URL запрос после регистрации пользователя в 1С-Битрикс?

Привет. тоже столкнулся что в файле Для просмотра ссылки Войди или Зарегистрируйся/init.php
не работает функция file_get_contents но работает curl
поэтому просто используйте curl без стеснения, получится такой результат:
Код:
    function file_get_contents_curl($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

AddEventHandler("main", "OnAfterUserRegister", Array("Unisender", "OnAfterUserRegisterHandler"));
class Unisender
{
    function OnAfterUserRegisterHandler(&$arFields)
    {
            $unisender = file_get_contents_curl('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[Name]='.$arFields["NAME"].'');
            return $unisender;
   }
}
 
Последнее редактирование:
Не работает((

Проблема была в кирилических символах поля имя. В общем вот так работает
Код:
AddEventHandler("main", "OnAfterUserRegister", Array("Unisender", "OnAfterUserRegisterHandler"));
class Unisender
{
    function OnAfterUserRegisterHandler(&$arFields)
    {
        $phone = $arFields["PERSONAL_PHONE"];
        $phone_replace = preg_replace("/[^0-9]/", '', $phone);
        $info = file_get_contents('https://api.unisender.com/ru/api/subscribe?format=json&api_key=6o5qtwwi5tgtgr4jw97xc8ypocjbq8fz3u3e48ra&list_ids=20662459,14498425&fields[email]='.$arFields["EMAIL"].'&fields[phone]=+'.$phone_replace.'&fields[Name]='.urlencode($arFields["NAME"]));
    }
}
 
Последнее редактирование модератором:
Назад
Сверху