Плагин интеграции с социальными сетями


Здравствуйте )
Основной этап работы над плагином интеграции с социальными сетями закончен. Выношу его на обсуждение. Посмотреть в работе можно здесь — http://gladcode.ru. Да, по этой ссылке сборка Charming, но речь пока не о ней, отдельный её анонс будет позже.
Вот что это плагин умеет:
— Авторизовываться на сайте через десяток социальных сетей;
— Брать из социальных сетей доступную дополнительную информацию и заполнять ею профиль создаваемого пользователя.
— Публиковать в социальные сети (не во все, правда) информацию о публикациях пользователя, новом статусе, новой записи на стене;
— Искать по сайту друзей из социальных сетей;
— Публиковать в открытую группу Фейсбука (почему только в нее расскажу попозже) информацию о новых публикациях.
— Конфигурироваться через админку без ковыряния в конфигах.
Теперь обо всем по порядку

1. Процедура авторизации на сайте

Идея простая и для всех соц.сетей одинакова: по клику на ссылку провайдера авторизации вы переходите на его сайт, соглашаетесь, что предоставите сайту определенную информацию о себе. После этого провайдер перенаправляет вас на исходный сайт предоставляя ему возможность получать о пользователе дополнительную информацию и проводить публикации от его имени.
Так как Альто требует обязательного наличия логина пользователя и его электронной почты, то перед созданием профиля пользователя из полученных от провайдера данных мы спрашиваем пользователя о том, какой бы логин он хотел и какую почту привязать к его логину.
То есть моментального входа на сайт в первый раз не получится, увы. Но все последующие попытки входа будут для пользователя проходить довольно быстро, за исключением твитера – это его такая особенность, он каждый раз спрашивает пользователя о его желании все-таки войти на сайт.

2. Множество социальных аккаунтов у одного пользователя

Разумеется у одного пользователя может быть несколько социальных аккаунтов не только у разных социальных сетей, но и у одного. плагин такое учитывает и в профиле пользователя добавлена страница управления связью с социалками, где пользователь может подключить к своему аккаунту на сайте дополнительные их учетки.
Например, у меня, в процессе разработки этого плагина появилось 11-социальных аккаунта (у гугла целых два) и все они прекрасно вместе живут, и на сайт я могу войти под любым из них

3. Какие данные берутся с социальных сетей?

Данные берутся следующие (правда не все провайдеры их предоставляют):
1. Имя;
2. Фамилия;
3. Пол;
4. Информация «О себе» — идет в профиль;
5. Ссылка на страницу, которая уходит в контакты пользователя на сайте.
6. День рождения;
7. Адрес электронной почты;
8. Фотография из профиля социалки.

4. Какие социальные сети поддерживаются?

Поддерживается 9 социальных сетей, которые имеют авторизацию по протоколу OAuth2.0 и Twitter, который еще живет по первой версии. OpenId не поддерживается! Это вот какие провайдеры: Вконтакт, Одноклассники, Фейсбук, Твиттер, Яндекс, Гугл, GitHub, LinkedIn и Instagram c Моим Миром.

5. Репост

Репост полного содержания статей не поддерживается в виду того, что у всех социалок есть ограничения на количество символов в сообщении, к примеру:
— Фейсбук – максимум 420 символов;
— Мой Мир – не больше 400 символов;
— Твиттер – 140 и все;
— Вктонаткт – ограничивается длиной get-запроса.
Остальные социальные сети автоматический репост в себя не делают, ну либо я не увидел как это делается по их официальному мануалу.
В группу разрешает постить только Фейсбук, остальные сети этого не разрешают по причинам безопасности.

Каждый пользователь может настроить параметры репостинга своей информации в социальные сети указав галочкой что и куда нужно отписывать. Кроме того, пользователь сам может указать текстовку, которая будет сопровождать постинг информации от топике, например «Читаем мой новый топик: …» и далее его название и ссылка.
Администратор сайта может направлять любую статью с сайта репостингом в открытую группу фейсбука нажатием кнопки в подвале топика. Опять же в силу ограничений на 420 символов публиковаться будет название топика и ссылка на него.

6. Поиск друзей

Как оказалось, из всех социальных сетей отправлять сообщения пользователям с сайта умеет только Мой Мир. То есть пригласить своих друзей на сайт с помощью меанизма социальной сети я не могу (. Одноклассники даже получить список друзей не дают, требуют официального письма в саппорт с просьбой включить этот API, вот так. Да и вообще не хорошо это: например если у пользователя 1000 друзей, а такие есть, то одной своей рассылкой он сайт повесит, а если и нет, то лимит запросов к API социальной сети точно подрасходует порядочно.
Был создан механизм поиска друзей по сайту, принцип следующий. Пользователь добавляет свою социалку в список подключенных учёток и нажимает кнопку поиска друзей. С его социальной сети поднимается список друзей и, если кто-то из них зарегистрирован на нашем сайте, то этому пользователю отправляется приглашение дружить.

7. Установка

Устанавливается как обычный плагин, но для того, что бы заработала связь с социальными сетями, для каждой нужно создать приложение и получить идентификатор приложения и секретный ключ, которые нужно указать в админке плагина в разделе «Контент». Из файлов конфига ничего не берется, поэтому писать туда ничего не нужно (Более подробно по каждой сети есть в readme плагина).


Плагин будет платным, сейчас определяемся с его стоимостью

По найденным багам просьба писать в комментарии.

PS Плагин доступен в каталоге

Похожие статьи


25 комментариев

+1
Звучит очень сильно
0
Попробовал, сначала смутило что меня никто не спросил логин, после регистрации через соц. сеть. Но потом нашел в описании что это предусмотрено.

1. Большой перечень социальных сетей.
2. Поиск друзей.
3. Репосты.

Лично я заинтересован. Осталось услышать вашу цену.
0
Дело в том, что плагин сейчас работает на социальной модификации «Charming», а там логин не используется, только Имя-Фамилия.

Сам плагин, конечно, спрашивает логин, просто для «Charming» от выпилен и из этого плагина.

Цена пока под вопросом
+2
Андрей, ты взорвал мой мозг. Боюсь представить, сколько человеко-часов было на это потрачено.
P.S. Есть некоторые нюансы по тексту — отправил в личку.
+1
Не столько уж и много :). Больше времени мануалы по API соц.сетей вычитывал.
+1
Отличный и очень нужный плагин. Уже его хочу )
+2
Спасибо, как только закончится тестирование плагин появится в каталоге.
0
Если нажать отмена вместо разрешить, ошибка.
0
Спасибо за ошибку, исправил )
+1
Спасибо, с радостью куплю!!!
0
Спасибо за труды! Плагин очень заинтересовал.
0
А когда сие чудо появится?
0
В ближайшие дни, как только закончу тестирование. Уже исправил несколько ошибок.
0
кстати сайт как демо который приведен тупит безбожно.
0
Аватарка из вконтактика так и не подтянулась. И репоста во вконтакт не увидел своего.
0
C аватаркой буду смотреть что случилось, а вот с репостов во вконтакт такая штука: По спецификации методов API вконтакта репостить может только Standalone-приложение, но дело в том, что если я создам в ВК приложение такого типа сайт им все равно не будет. Что бы репостить нужен специальный токен приложения, получить который можно только из адресной строки браузера а сайт к этой строке доступа не имеет.

Можно поступить так — вручную сформировать запрос к ВК, отправить его и когда ВК перенаправит на свою пустую страницу руками скопировать этот токен в плагин и потом можно будет репостить — но это уж очень напоминает костыль. При чем если этот токен сменится, то такую процедуру придется повторить. Такой вид репоста я делать не стал.

Но ВК поддерживает репост «С открытием окна подтверждения». Когда после репоста сайт открывает всплывающее окно и там вы разрешаете репостинг. Вот это самое окно изначально браузерами блокируется — вам нужно разрешить сайту открывать всплывающие окна и репост получится.

Понимаю, что не удобно и криво, но других способов репоста в ВК нет. Вы можете напсиать в поддержку ВК и вам могут открыть, а могут и нет, возможность репоста, но это уже индивидуально.

Репост в ВК плагин поддерживает только через открывающееся окно подтверждения.
Отредактирован:
0
Да, API смены статуса для сайтов в ВК тоже не поддерживается.
0
Отличный плагин, куплю обязательно как выйдет.
+1
Посмотрел на тестовом сайте… Почему то аватары вообще ни из каких сетей не подтягивает на страницу профиля. Там черно белые с какими то еще дополнительными маленькими картинками. Так и должно быть? Из некоторых сетей аватары присутствуют, но не на странице профиля после авторизации, а на странице настроек профиля, некоторые просто обозначают что файла нет. Например на странице настроек после авторизации через VK при попытке открыть такую картинку в окне браузера там ничего нет типа такого gladcode.ru/settings/male_1_black.png А после авторизации через ОК на странице настроек есть аватар и адрес такой gladcode.ru/uploads/images/00/00/26/avatar/0u6d75ca48-3f6a4e0c-15f3f93a.jpeg-100x100.jpeg Но зачем этот аватар на странице настроек и как его подключить в свой основной аватар на сайте непонятно. Идем дальше — авторизация через FB — аватар есть на странице настроек, однако если нажать на уменьшенные изображения аватаров справа от основной картинки в профиле — начинают вращаться колеса ajax загрузки какой то… И после обновления страницы подтянутой аватарки на странице настроек уже нет, вместо нее пустое место такое gladcode.ru/settings/male_2_black.png Через твиттер аватар также не подгрузился изначально. Через маилру подгрузился, после нажатия на маленькое черно-белое изображение и обновления страницы аватар исчезает и ссылается куда то в gladcode.ru/settings/male_1_black.png Через яндекс отображается стандартная голубая заготовка тут gladcode.ru/uploads/images/00/00/00/avatar/avatar_experience_male.png-100x100.png Аналогично исчезает после нажатия на малые изображения и «вращения колес». Через G+ изначально не подгрузилась. Через github я почему то авторизовался Андреем Вороновым, аватарки сразу нужные загрузились, после колес все снова исчезло. Дальше не ковырял. Сама авторизация проходит нормально за исключением github (не мой аккаунт), но с аватарами полный разброд. Может лучше ничего не подтягивать, а назначать какие то по умолчанию, потом пользователь пусть сам меняет на свои. Если можно расскажите в чем смысл маленьких черно белых изображений справа от основного фото.
+4
Спасибо, сейчас буду исправлять.
0
Что то тестовый сайт уже второй или третий день недоступен:(
0
В продажу еще плагин не выставляете?
+1
Функционал впечатляет!
+1
Когда уже будет то? Вадим как то месяц назад говорил «за Андрея»:) что плагин практически готов и на днях поступит в каталог…
0
тоже жду, а то AutoOpenId платный косячно работает на alto
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.