[РЕШЕНО] 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
{«id»:«123456»,«key»:«123456»,«secret»:«123456»} должно быть так, у меня подключены одноклассники, но я их хочу уже отключить так как если будешь использовать аватарки, то сайт их не получит, точнее он получит картинку где будет написано что это картинка находится на однаклассниках
я тут придумала свой костыль решения одноклассникам))
в файлик \core\components\hybridauth\model\hybridauth\lib\Providers\Odnoklassniki.php
в функцииfunction getUserProfile()
после
в файлик \core\components\hybridauth\model\hybridauth\lib\Providers\Odnoklassniki.php
в функцииfunction getUserProfile()
после
if ( ! isset( $response->uid ) ){
throw new Exception( "User profile request failed! {$this->providerId} returned an invalid response.", 6 );
}
вставляем $copy=false;
if (property_exists($response,'pic_1')){
$path="assets/od_ava/".$response->uid.".jpg";
$copy=copy($response->pic_1,$path);
}
и ниже $this->user->profile->photoURL = ($copy)?$path:"";
в папке assets надо создать папку od_ava и дать на нее права записи.
Спасибо, Алексей. Подозревал, что дело может быть в не добавленном ключе. Проверю сейчас.
Заработало
А я никак не могу победить Одноклассники. Яндекс, твиттер, фейсбук, гугл, вконтакте, мейлру работают, а одноклассники нет. Нажимаю залогиниться и ничего не происходит. В журнале:
В параметрах указываю: в «id» > ID приложения, в «key» > Публичный ключ приложения, в «secret» > Секретный ключ приложения. Полдня мучаюсь, лыжи не едут. Подскажите кто знает в чем ошибка.
А какой адрес нужно указывать в ссылке на приложение: адрес сайта или site.ru/assets/components/hybridauth/action.php?hauth.done=Odnoklassniki?
[2013-03-26 13:55:09] (ERROR @ /index.php) [HybridAuth] ha_err_no_provider_keys
[2013-03-26 13:55:09] (ERROR @ /index.php) [HybridAuth] No provider ID specified.
[2013-03-26 13:55:09] (ERROR @ /index.php) [HybridAuth] ha_err_no_provider_keys
Вызываю так:[[!HybridAuth? &providers=`Yandex,Twitter,Facebook,Vkontakte,Odnoklassniki,Mailru,Google` &logoutTpl=`tpl.HybridAuth.logout_my` &groups=`web_users`]]
В параметрах указываю: в «id» > ID приложения, в «key» > Публичный ключ приложения, в «secret» > Секретный ключ приложения. Полдня мучаюсь, лыжи не едут. Подскажите кто знает в чем ошибка.
А какой адрес нужно указывать в ссылке на приложение: адрес сайта или site.ru/assets/components/hybridauth/action.php?hauth.done=Odnoklassniki?
Не знаю, не подключал.
Судя по записям в логе — что то не так с ключами. Можно еще попробовать разлогиниться с сайта и почистить кэш бразуера. Настройки кэшируются в сессии, это может помешать как-то.
Судя по записям в логе — что то не так с ключами. Можно еще попробовать разлогиниться с сайта и почистить кэш бразуера. Настройки кэшируются в сессии, это может помешать как-то.
А я категорически не могу забороть VK. То есть он подключился. Вроде бы. Потому что переадресация на VK идет, там авторизация проходит, пользователя сервис спрашивает о разрешении на предоставление данных такому-то серверу, происходит переадресация обратно и… Фиг. Ни регистрации пользователя, ни ошибок в логе.
P.S. Под логином создавшего приложение вообще не входим. Видимо, это прынцып.
P.S. Под логином создавшего приложение вообще не входим. Видимо, это прынцып.
Да нет, я вхожу под своим логином на ВК нормально.
Вась, я и сюда даже не могу зайти под ВК. Вот это сурприз, однако.
Это был Chrome. Из Mozilla кнопка тупо перебросила в vk.com на главную страницу аккаунта. Это попытка залогиниться на твоем сайте через ВК.
Это был Chrome. Из Mozilla кнопка тупо перебросила в vk.com на главную страницу аккаунта. Это попытка залогиниться на твоем сайте через ВК.
Домой доеду, проверю.
Может, vk что-то поменял.
Может, vk что-то поменял.
подскажите плиз что я недоделал:
добавляю провайдера mailru
в настройках системы по образу и подобию делаю ключ ha.keys.Mailru
{«id»:«715744»,«secret»:«1f570уe764b8804b7eb2a4fc3ac905b2»}
(пару букв и цифр изменены умышленно)
добавляю Mailru в вызов сниппета, на сайте есть иконка, залогиниваюсь — подтверждаю на майле, захожу на сайт
появляется окно для ввода коментариев
но нет прав на сохранение
проверяю пользователя, а он не добавлен в группу Users. Вопрос что еще надо сделать по этому провайдеру или что я пропустил?
добавляю провайдера mailru
в настройках системы по образу и подобию делаю ключ ha.keys.Mailru
{«id»:«715744»,«secret»:«1f570уe764b8804b7eb2a4fc3ac905b2»}
(пару букв и цифр изменены умышленно)
добавляю Mailru в вызов сниппета, на сайте есть иконка, залогиниваюсь — подтверждаю на майле, захожу на сайт
появляется окно для ввода коментариев
но нет прав на сохранение
проверяю пользователя, а он не добавлен в группу Users. Вопрос что еще надо сделать по этому провайдеру или что я пропустил?
http://docs.modx.pro/components/hybridauth/snippets/hybridauth Прочитай внимательно все параметры!
да спасибо Артур, я когда вставлял TicketComments перетаскиванием, то во всплывающем окне «выбрать опции элементов->параметры» не оказалось &groups, вот и пропустил.
подскажите плиз еще, сейчас не работает функционал оценки коментария, стрелки вверх и вниз и нолик есть, но оценки не прибавляются. Где я еще невнимательно прочитал-)?
подскажите плиз еще, сейчас не работает функционал оценки коментария, стрелки вверх и вниз и нолик есть, но оценки не прибавляются. Где я еще невнимательно прочитал-)?
Ты не можешь сам себе ставить оценки, тебе нужен 2 пользователь для проверки этого функционала. Не забудь дать права новому пользователю.
отправил вам на почту ссылку для проверки функционала)
Привет! Одноклассники с новым hybridauth снова не дружат?
в логах ошибка, после авторизации ничего не происходит.
[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 ничего не дала, в логах вообще пусто. Старая версия вроде нормально работает.
в логах ошибка, после авторизации ничего не происходит.
[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 указывать в настройках? Что еще надо сделать?) Может кто-то настраивал недавно :)
Подскажете пожалуйста с 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»}}
Необходимо пройти по ссылке из документации api.mail.ru/sites/my/add/
И там уже генерировать ключи
Там будет 3 параметра
ID:
Приватный ключ:
Секретный ключ:
Нужны два: ID и Секретный ключ
В системных настройках создать параметр с ключем ha.keys.Mailru и значением (замените елочки на двойные кавычки)
{«keys»:{«id»:«343245»,«secret»:«34534534534535»}}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.