Авторизация в битриксе через вконтакт

Задача: подключить авторизацию через социальную сеть вконтакте в 1С-Битрикс версии 15.5.4 хотя актуальная версия на данный момент является 17.5.9.

Проблема: авторизация не проходит, выдает ошибку «К сожалению, произошла ошибка при авторизации на сервисе ВКонтакте.»

Решение: отладкой каждого метода удалось выяснить, что ошибку выдает сама социальная сеть вконтакт и ругается она на то, что мы не передаем ей версию API.

Всю отладку проводим в файле /bitrix/modules/socialservices/classes/general/vkontakte.php и добираясь до строки 354 (в иных версиях битрикса может быть на другой строке) мы видим

$result = CHTTP::sGetHeader(self::CONTACTS_URL.'?fields=uid,first_name,last_name,nickname,screen_name,sex,bdate,city,country,timezone,photo,photo_medium,photo_max_orig,photo_rec,email&access_token='.urlencode($this->access_token), array(), $this->httpTimeout);

тут нам достаточно добавить в передаваемые параметры версию v=3.0 и получим строку в следующем виде

$result = CHTTP::sGetHeader(self::CONTACTS_URL.'?v=3.0&fields=uid,first_name,last_name,nickname,screen_name,sex,bdate,city,country,timezone,photo,photo_medium,photo_max_orig,photo_rec,email&access_token='.urlencode($this->access_token), array(), $this->httpTimeout);

Все! Теперь авторизация проходит на ура!

Рубрики: Development
Метки:

Комментарии (4)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *