molatok
Профессор
- Регистрация
- 13 Июл 2008
- Сообщения
- 224
- Реакции
- 38
- Автор темы
- #1
Нашел офигенную штуку и просто не мог не поделиться.
Вдруг кто не знает
Наверное, все читали вконтактике про возможность входа на сайты с помощью ВК OpenAPI
Так вот. На друпале это реализуется парой кликов.
Автор модуля - Ромка Для просмотра ссылки Войдиили Зарегистрируйся
PS - модуль работает сразу, никаких подтверждений не нужно
PPS у кого не получится - не грешите на модуль.
Пример -
PS - иногда выползают ошибку, но, вроде, автор модуля его постоянно пилит
Вдруг кто не знает

Наверное, все читали вконтактике про возможность входа на сайты с помощью ВК OpenAPI
Так вот. На друпале это реализуется парой кликов.
Скачать модуль можно на drupal.org. Демо работы модуля доступно, например, тут: Для просмотра ссылки Войдиили Зарегистрируйся.
Update. Доступна четвертая альфа-версия модуля. Из ВКонтакта подтягивается аватар пользователя (администратор в настройках модуля может задать аватарку какого из трех размеров, предоставляемых ВКонтактом, использовать). Каждому созданному модулем пользователю может быть назначена особая роль.
В пятой альфа-версии модуля планирую добавить обновление статусов.
Работа модуля
Это пока первая и очень простая реализация модуля, работает он так:
1. после нажатия пользователем кнопки "войти вКонтакте" модуль получает необходимые данные от сервера вКонтакте.
2. Далее модуль проверяет есть ли в базе данных Друпала пользователь, связанный с именем, полученным от вКонтакте:
* если его нет, то создается новый пользователь и связывается с id пользователя ВКонтакте. Внимание! Важная деталь. Если в базе данных есть пользователь с именем не связанным с учетной записью вКонтакте и из вКонтакте приходит пользователь с таким же именем, то такие две учетные записи не будут связаны, для имени нового пользователя будет просто добавлен суффикс _N, где вместо N будет подставлено число.
* если связанный с учетной записью ВКонтакте пользователь есть, то будет использована найденная учетная запись.
3. Выбранный пользователь авторизуется в системе.
4. ВКонтакте не отдает адрес электронной почты, по этому модуль предлагает новому пользователю указать свой e-mail в настройках своего нового аккаунта.
Установка и настройка модуля
1. Первым делом во ВКонтакте нужно создать приложение типа "Веб-сайт", для этого нужно перейти по ссылке: Для просмотра ссылки Войдиили Зарегистрируйся и нажать на кнопку "Подключить сайт".
2. В настройках созданного приложения нужно указать адрес сайта (Для просмотра ссылки Войдиили Зарегистрируйся) и базовый домен (example.com), а также получить ID приложения и защищенный ключ, все эти четыре параметра нужно будет указать в настройках модуля vk_openapi.
3. Теперь нужно скачать модуль, если вы этого еще не сделали, распаковать в папку sites/all/modules и включить его стандартными средствами Друпала.
4. После активации модуля, на странице admin/settings/vk_openapi вы должны указать параметры созданного ранее приложения ВКонтакте.
Все, после выполнения этих действий к формам авторизации будет добавлена кнопка "войти вКонтакте" и пользователи смогут авторизоваться на вашем сайте с помощью учетных записей вКонтакте. При желании вы можете отключить вывод этой кнопки в формах авторизации, тогда в произвольное место страницы сайта нужно будет вставить код:
<div id="vk_login" style="margin: 0 auto 20px auto;" onclick="doLogin();"></div>
который будет заменен на кнопку.
Я старался сделать этот модуль максимально простым для посетителей сайта — авторизоваться в системе можно всего одним кликом. Мне, например, сильно не нравится реализация Facebook Connect для Друпла тем, что после нажатия кнопки "Connect" пользователя заставляют еще заполнить некоторые поля в форме регистрации. По этому данные от ВКонтакте получаются только один раз, при первом входе в систему, и используются только имя и фамилия пользователя. Теоретически, эти данные можно периодически обновлять, также есть возможность получить данные о фотографиях пользователя и его аватарке, его друзьях изменениях статусов, связать логаут на Друпал-сайте с логаутом из ВКонтакте и т.п. Интересно знать нужен ли кому-нибудь подобный функционал или достаточно того, что уже есть сейчас?
Автор модуля - Ромка Для просмотра ссылки Войди
PS - модуль работает сразу, никаких подтверждений не нужно
PPS у кого не получится - не грешите на модуль.
Пример -
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
PS - иногда выползают ошибку, но, вроде, автор модуля его постоянно пилит