[РЕШЕНО] HybridAuth и Одноклассники
Привет, Василий и коллеги!
Возникла проблема с авторизацией юзера через Одноклассники.ру. После откровенно геморройной процедуры получения ключа приложения и секретного кода, создал соответствующие параметры в настройках системы.

Предварительно проверив правильность названия провайдера в core/components/hybridauth/model/hybridauth/lib/Providers/ добавил в чанк tpl.HybridAuth.login строку:
на странице с авторизацией добавил вызов HybridAuth:
Проблема в следующем. Авторизация через Mail.ru и Vk проходит успешно (в соответствующей группе создаются пользователи, успешно логинятся и разлогиниваются), а с Одноклассниками — труба. Происходит вот что — незалогиненный юзер переходит на страницу авторизации Одноклассников, вводит логин и пароль и, по логике вещей, после редиректа уже должен быть авторизован на сайте. Но авторизации не происходит, да и соответствующий пользователь не создается.
Вот содержимое error.log:
Думаю вот, что с этим делать и где копать. Может у кого-нибудь уже был положительный опыт подключения Одноклассников? Буду благодарен за совет и пинок в нужном направлении.
Возникла проблема с авторизацией юзера через Одноклассники.ру. После откровенно геморройной процедуры получения ключа приложения и секретного кода, создал соответствующие параметры в настройках системы.
Предварительно проверив правильность названия провайдера в core/components/hybridauth/model/hybridauth/lib/Providers/ добавил в чанк tpl.HybridAuth.login строку:
<a href="[[+login_url]]&provider=Odnoklassniki">Odnoklassniki.ru</a> на странице с авторизацией добавил вызов HybridAuth:
[[!HybridAuth? &providers=`Vkontakte,Mailru,Odnoklassniki` &groups=`Site visitors` &requiredFields=`username,fullname,email,photo` &profileFields=`username,fullname,email,photo`]]Проблема в следующем. Авторизация через Mail.ru и Vk проходит успешно (в соответствующей группе создаются пользователи, успешно логинятся и разлогиниваются), а с Одноклассниками — труба. Происходит вот что — незалогиненный юзер переходит на страницу авторизации Одноклассников, вводит логин и пароль и, по логике вещей, после редиректа уже должен быть авторизован на сайте. Но авторизации не происходит, да и соответствующий пользователь не создается.
Вот содержимое error.log:
[2013-02-13 14:38:40] (ERROR @ /connectors/security/user.php) Could not get table class for class: modAccess
[2013-02-13 14:38:40] (ERROR @ /connectors/security/user.php) Could not get table name for class: modAccess
[2013-02-13 14:38:40] (ERROR @ /connectors/security/user.php) Error 42000 executing statement:
Array
(
[0] => 42000
[1] => 1064
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS `modAccess` WHERE `modAccess`.`principal` = 6' at line 1
)Думаю вот, что с этим делать и где копать. Может у кого-нибудь уже был положительный опыт подключения Одноклассников? Буду благодарен за совет и пинок в нужном направлении.
Комментарии: 19
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
в файлик \core\components\hybridauth\model\hybridauth\lib\Providers\Odnoklassniki.php
в функцииfunction getUserProfile()
после
вставляем
и ниже
в папке assets надо создать папку od_ava и дать на нее права записи.
Вызываю так:
В параметрах указываю: в «id» > ID приложения, в «key» > Публичный ключ приложения, в «secret» > Секретный ключ приложения. Полдня мучаюсь, лыжи не едут. Подскажите кто знает в чем ошибка.
А какой адрес нужно указывать в ссылке на приложение: адрес сайта или site.ru/assets/components/hybridauth/action.php?hauth.done=Odnoklassniki?
Судя по записям в логе — что то не так с ключами. Можно еще попробовать разлогиниться с сайта и почистить кэш бразуера. Настройки кэшируются в сессии, это может помешать как-то.
P.S. Под логином создавшего приложение вообще не входим. Видимо, это прынцып.
Это был Chrome. Из Mozilla кнопка тупо перебросила в vk.com на главную страницу аккаунта. Это попытка залогиниться на твоем сайте через ВК.
Может, vk что-то поменял.
добавляю провайдера mailru
в настройках системы по образу и подобию делаю ключ ha.keys.Mailru
{«id»:«715744»,«secret»:«1f570уe764b8804b7eb2a4fc3ac905b2»}
(пару букв и цифр изменены умышленно)
добавляю Mailru в вызов сниппета, на сайте есть иконка, залогиниваюсь — подтверждаю на майле, захожу на сайт
появляется окно для ввода коментариев
но нет прав на сохранение
проверяю пользователя, а он не добавлен в группу Users. Вопрос что еще надо сделать по этому провайдеру или что я пропустил?
подскажите плиз еще, сейчас не работает функционал оценки коментария, стрелки вверх и вниз и нолик есть, но оценки не прибавляются. Где я еще невнимательно прочитал-)?
в логах ошибка, после авторизации ничего не происходит.
[2014-12-03 23:33:39] (ERROR @ /var/www/user/core/components/hybridauth/model/hybridauth/lib/Providers/Odnoklassniki.php: 46) PHP warning: curl_setopt(): You must pass either an object or an array with the CURLOPT_HTTPHEADER argument
Замена на обновленный odnoklassniki.php ничего не дала, в логах вообще пусто. Старая версия вроде нормально работает.
Подскажете пожалуйста с Mailru
В системных настройках создал по типу:
{«keys»:{«id»:«12345»,«secret»:«12345»}}
Приложение создал:
prnt.sc/x76twq
Но выходит ошибка, хотя client_id передается
prnt.sc/x76xcv
Может надо еще scope указывать в настройках? Что еще надо сделать?) Может кто-то настраивал недавно :)
Необходимо пройти по ссылке из документации api.mail.ru/sites/my/add/
И там уже генерировать ключи
Там будет 3 параметра
ID:
Приватный ключ:
Секретный ключ:
Нужны два: ID и Секретный ключ
В системных настройках создать параметр с ключем ha.keys.Mailru и значением (замените елочки на двойные кавычки)
{«keys»:{«id»:«343245»,«secret»:«34534534534535»}}