- Простой и удобный способ добавления социальных сетей в Андроид приложение на примере Вконтакте и Одноклассники
- Регистрация приложения в социальной сети
- Интеграция Вконтакте и Одноклассники в приложение
- Запросы к Социальным сетям
- Социальная сеть на Android за несколько выходных — часть II (сервер)
- Краткое содержание первой части
- Содержание
- Введение
- Регистрация
- Синхронизация контактов
- Загрузка фотографий
- Push-уведомления
- Очереди асинхронных задач
- Как создать социальную сеть «с нуля»?
- Этап 1. Подготовка, поиск оригинальной идеи, определение ЦА
- Этап 2. Выбор движка — CMS
- Этап 3. Раскрутка и продвижение
- Этап 4. Монетизация и заработок
Простой и удобный способ добавления социальных сетей в Андроид приложение на примере Вконтакте и Одноклассники
Во время разработки приложений на Андроид часто встает вопрос интеграции социальных сетей в приложение. Логин через социальную сеть, рассказать друзьям, просмотреть список друзей — встречаются почти в каждом приложении.
Для этого можно воспользоваться модулями библиотеки ASNE.
Используя модуль библиотеки вы подключите SDK или API выбранной социальной сети и интерфейс для наиболее часто используемых запросов к ней, тем самым сэкономив время и упростив добавление другой социальной сети. Благодаря использованию SDK, пользователь может залогиниться или расшарить запись через уже установленное приложение социальной сети. А добавить социальную сеть как модуль, если ее нет в разработанных, не составит труда — это легко сделать по аналогии с любым другим модулем.
В данной публикации я покажу, как можно легко добавить поддержку VK и Odnoklassniki в приложении под Android, используя соответствующие модули ASNE. В статье рассмотрен упрощенный пример, включающий добавления логина, записи с ссылкой на стену пользователя и вывода списка друзей.
Регистрация приложения в социальной сети
Для добавления социальной сети в приложение потребуется ключ для совершения запросов. Поэтому первым шагом необходимо зарегистрировать приложение — по ссылкам вы увидите краткое руководство по созданию приложения для:
- VK
- Odnoklassniki
Для продолжения работы потребуются следующие ключи, которые используются в SDK социальных сетей.
- VK App ID
- OK App ID
- OK Public Key
- OK Secret Key
Интеграция Вконтакте и Одноклассники в приложение
После создания нового проекта сохраним ключи в values/strings.xml:
Затем добавим uses-permission для работы с интернетом и activity, необходимую «Одноклассниками» для взаимодействия с приложением в манифест.
Теперь добавим зависимости для модулей ASNE, например, в Android Studio для этого необходимо:
Открыть Project Structure => выбрать модуль приложения и открыть Dependencies => Add new library dependency
Затем по запросу asne вы увидите все модули доступные в библиотеке и добавьте в зависимость asne-vk, asne-odnoklassniki:
Либо вручную добавьте зависимости в build.gradle.
Немного украсим наше приложение:
В главном фрагменте расположим 2 кнопки, отвечающие за логин в социальные сети.
Для обработки ответа после запроса логина переопределим в MainActivity.java метод onActivityResult.
При обработке запроса логина социальная сеть отправляет onActivityResult проверяем его и отправляем в SocialNetworkManager, который передаст его в соответствующую SocialNetwork.
Теперь интегрируем социальную сеть в MainFragment.java — это просто:
- Возьмем ключи социальных сетей из values.xml
Создадим SocialNetworks с соответствующими разрешениями:
Проверим существует ли SocialNetworkManager
- Если не существует зададим его и добавим в него SocialNetworks
Если SocialNetworkManager существует(задали в activity или другом фрагменте) — выберем все инициализированные социальные сети и установим им OnLoginCompleteListener
Теперь необходимо обработать ответ после инициации SocialNetworks
Весь исходный код onCreateView и onSocialNetworkManagerInitialized из MainFragment c инициацией социальных сетей.
Запросы к Социальным сетям
Для начала запросим логин в социальной сети, для этого потребуется лишь id
Код OnClickListener loginClick с проверкой состояния подключения к социальной сети, а если пользователь уже вошел через социальную сеть — откроем ProfileFragment.java
После обработки логина приложением социальной сети получим onLoginSuccess(int networkId) или onError(int networkId, String requestID, String errorMessage, Object data) — выведем соответствующее сообщение.
Откроем ProfileFragment.java с помощью метода:
В ProfileFragment.java получим идентификатор социальной сети из MainFragment.java
Теперь с помощью networkId мы выберем социальную сеть и запросим данные профиля текущего пользователя следующим образом:
не забудьте добавить OnRequestSocialPersonCompleteListener
После обработки запроса мы можем использовать полученный объект SocialPerson для заполнения профиля пользователя в приложении, либо вывести ошибку при неудаче
Для выхода из социальной сети необходимо использовать метод logout()
И, честно говоря, это все — добавили ВК и Одноклассники в приложение. Как оказалось это достаточно просто и быстро. Аналогично можно добавить и другие социальные сети Facebook, Twitter, Linkedin, Instagram или Google Plus лишь добавив соответствующую зависимость и добавив их в SocialNetworkManager
Конечно же вы можете использовать выше описанные методы для работы с ними
Но давайте разберем еще несколько запросов — поделиться ссылкой и вывод списка друзей
Давайте поделимся ссылкой с помощью социальной сети:
Для начала настроим кнопку
Для отправки ссылки на стену пользователя нам необходимо ее передать в Bundle
И конечно же обработать ответы
Итак в OnClickListener shareClick покажем пользователю простой диалог в котором спросим, хочет ли он поделиться ссылкой, и если да, отправим ее
И на стене пользователя успешно появилась ссылка с предпросмотром и описанием
Теперь выведем список друзей пользователя:
Получим SocialNetwork из идентификатора социальной сети и запросим список друзей
Используя модули библиотеки ASNE можно легко и быстро добавить любую популярную социальную сеть в приложение. Конечно же в библиотеке содержится больше методов которые возможно пригодятся в вашем приложении. А так же можно использовать любые методы SDK или API используя токен или объект SDK
Если данное приложение вам показалось простым, вы можете посмотреть реализацию всех методов библиотеки в демо для библиотеки
Так же вы можете изучить аналогичную статью по подключению Facebook, Twitter and LinkedIn на codeproject.com.
В данный момент библиотека стабильна и находится в состоянии добавления социальных сетей. Буду рад вашим советам или помощи в разработке.
В планах развития библиотеки:
- Описание добавления своего модуля — в вики репозитория(на самом деле все очень просто);
- Добавление китайских социальных сетей;
- Написания javdocа и тестов.
Источник
Социальная сеть на Android за несколько выходных — часть II (сервер)
Краткое содержание первой части
Содержание
Введение
Регистрация
Синхронизация контактов
Для построения графа друзей на сервере ведется учет контакт-листов пользователей и сопоставление его с телефонными номерами пользователей, указанными при регистрации. Все контакт-листы хранятся в хэшированном виде. Телефонные номера должны быть приведены к нормальной форме, для чего используется библиотека libphonenumber от Google.
Стоит отметить один нюанс – код страны определяется в формате ISO-3166 относительно устройства пользователя, т.е. даже если в моей контактной книге находятся телефонные номера других стран, то при нормализации этих номеров необходимо использовать код страны «приписки» sim-карты моего устройства — RU.
Сопоставление телефонов происходит в одном из двух случаев:
- При регистрации нового пользователя, его телефон сравнивается с уже существующими контакт-листами
- Также при каждом запуске приложения контакт-лист повторно отправляется на сервер для выявления новых контактов
Для описанного сценария на БД сервера создается две таблицы – одна для самого контакт-листа и вторая для списка подтвержденных друзей (сам граф друзей). Такая схема позволяет изменять существующие контакты, не нарушая сформированные ранее ребра графа друзей.
Загрузка фотографий
В качестве хранилища фотографий мы выбрали два варианта – бесплатный аккаунт(free tier) AWS S3 как основной и собственный сервер как запасной (например на случай превышения лимита запросов в бесплатном аккаунте S3).
Рис 1. Загрузка изображений на AWS S3 |
Перед загрузкой клиент запрашивает у сервера временную публичную ссылку с правами записи, выполняет загрузку по этой ссылке напрямую на S3, после чего сообщает на сервер об успешной загрузке. Для работы с AWS S3 мы использовали aws-sdk gem. Перед работой необходимо завести аккаунт в AWS Web Services (на момент разработки была возможность завести бесплатный тестовый аккаунт на 5GB и 20,000 запросов) и получить пару ключей ACCESS_KEY/SECRET_ACCESS_KEY
Push-уведомления
При загрузке новых фотографий или добавлении комментариев подписчикам пользователя в реальном времени отправляются push-уведомления. Самым популярным и достаточно простым способом доставки push уведомлений в Android является GCM – Google Cloud Messaging. Перед использованием сервиса необходимо зарегистрировать свой проект в консоли разработчика, получить API-ключ и Project Number. API-ключ используется для авторизации сервера приложения при запросах к GCM, он добавляется в заголовок HTTP-запросов.
Со стороны клиента уникальным идентификатором получателя уведомлений является PushID, который получается путём обращения через GoogleCloudMessaging SDK с Android устройства напрямую к серверу GCM, при этом необходимо указать полученный ранее ProjectID. Полученный PushID отправляется на наш сервер приложения и впоследствии используется при доставке уведомлений.
Код 6. Пример отправки push-уведомлений (HTTP) |
lib/push.rb Очереди асинхронных задачЧтобы ускорить взаимодействие с клиентом, некоторые задачи на сервере выполняются в фоновом режиме. В частности это отправка Push уведомлений, а также масштабирование изображений. Для таких задач мы выбрали resque gem. Список решений по обработке очередей и краткое описание можно изучить по ссылке. Мы выбрали resque за его простоту установки и конфигурации, поддержку персистентности с помощью БД redis, наличие минималистского веб-интерфейса. После запуска rails сервера необходимо отдельно запустить обработчик очередей resque следующим способом: После этого постановка новых задач в очередь осуществляется следующим способом (На примере отправки push-уведомлений) Источник Как создать социальную сеть «с нуля»?Это только кажется, что запрос потребителя на участие в социальных сетях сегодня полностью закрыт такими гигантами, как «Фейсбук», «Инстраграм», «Твиттер» и им подобными. Если бы это пугало креативную молодежь, не появились бы «Тик Ток», «Pinterest» и другие. Главное для успеха в деле создания социальных сетей – нужная идея, неудовлетворенный запрос. И, если таковые вычислены, проект новой социальной сети просто обречен на успех.
Этап 1. Подготовка, поиск оригинальной идеи, определение ЦАРядовой веб-мастер вряд ли создаст «на коленке» что-то подобное «Фейсбуку». Да и смысла в этом нет – ниша общетематических социальных сетей заполнена. А вот узкоспециализированные тематики вполне могу стать основой стартапа. Люди склонны группироваться по интересам, и, чаще всего, выбирают для этого отдельную, обособленную площадку. Так удобнее – на огражденную территорию не проникнет нежелательная информация, снижается риск встречи с хейтерами, в разы повышается шанс встретить настоящих единомышленников, а, может, и друзей. Когда направления движения соцсети определено, обязательно нужно составить потрет пользователя. От того, насколько точен будет этот портрет, зависит дизайн, функционал проекта, и, соответственно, способы его монетизации. На том этапе стоит задержаться, чтобы исключить ошибки. Внешний вид и внутреннее наполнение социальной сети определяют его пользователи, анне разработчик. Разработчик должен эти требования удовлетворить. Если этого не произойдет, пользователь уйдет из соцсети. А с ним и мечты о сверхдоходах. Соцсеть для минималистов не может быть такой же, как сеть для любителей шопинга. Увлеченному охотнику будет неуютно на сайте, оформленному в любимом стиле «мамочек в декрете». Интроверт и минуты не задержится на сайте, где постоянно всплывает голосовая реклама и мелькаютбаннеры. Поэтому определение своей потенциальной целевой аудитории – первая основа успеха. Работу по определению целевой аудитории можно провести самостоятельно, например, путем опросов. Можно заказать эту работу маркетологам. Этап 2. Выбор движка — CMSВажнейший этап, от правильных решений на котором зависит успех проекта в части его технической реализации. CMS – систему управления контентом, можно написать самому. На это могут уйти годы. Можно взять бесплатные предложения «из коробки» — Joomla, WordPress, Drupal и другие. У них естьбесспорные преимущества, но и вполне ощутимые недостатки, способные свести все усилия нанет. В частности:
Есть и третий путь для будущих Цукербергов – например, программно-аппаратный комплекс Qwerty Social Network Engine, на базе которого создано множество крупных проектов, в том числе высоконагруженных и горизонтально-масштабируемых – специализированные социальные сети и приложения, сайты знакомств, порталы и др. Платформа является эксклюзивной разработкой компании Qwerty Networks и предназначена для внедрения социальных сетей, в том числе международных, универсальных и узкопрофильных, на базе этой платформы. Компания предоставляет ряд дополнительных услуг, которые могут заинтересовать тех, у кого есть идея, но мало денег для ее воплощения. Например, совместный запуск и со-финансирование интересного компании проекта. В создание крупных соцсетей изначально были вложены миллиарды, что и позволило из владельцам сейчас насаждаться сверхдоходами. С предложением Qwerty Networks миллиарды не понадобятся, стоимость создания и запуска новой сети может быть сведена к 20-50 тысячам евро. Стоит ознакомиться с условими разработчика на их сайте. Этап 3. Раскрутка и продвижениеСоздать сеть – лишь полдела. Допустим создали. Вот она – красивая, удобная, функциональная. Но, если о ней никто не знает, толку от всех вложенных усилий будет ноль. Дальше встает вопрос привлечения пользователей, продвижения сети и способов монетизации. Социальную сеть продвигает не только поисковая оптимизация. Даже больше – это далеко не самое главное. Лучший способ продвижения такого проекта – рекомендательный характер самих пользователей, «сарафанное радио». Люди приглашают друг друга на платформу для общения, а дальше пользователь или уходит, или остается, если его внимание привлечено чем-то уникальным и однозначно для него полезным. Пример – раскрутка «Фейсбука», сети, которая изначально была создана для общения небольшой группки студентов Гарвардского университета, а в результате выросла в глобального монстра. «Костяк» новой сети составят типичные представители «портрета целевой аудитории», с них и надо начинать. Важно! В сеть люди должны приходить сами, бесполезно приглашать массовой рассылкой кого попало. Так недолго и оказаться в списке злостных спамеров и в бане. Заинтересованных пользователей приведет на площадку незакрытая потребность, которую способна удовлетворить новая сеть. Этап 4. Монетизация и заработокПользователи приходят в сеть, чтобы общаться и развлекаться. Владельцы сети создают ее с целью получения прибыли. Как можно заработать на своем детище? Способов не так много, но они себя зарекомендовали, как рабочие: Реклама. Целевая аудитория любой сети является и целевой аудиторией производителей какого-либо товара. По сути, соцсеть – это толпа готовых, разогретых покупателей. Торговцы очень любят и ценят соцсети, особенно узкоспециализированные. Там проще продавать, естественно, делясь прибылью на выгодных условиях с владельцем площадки. Платные внутренние сервисы. Пользователь всегда готов за что-то немного доплатить на условно бесплатной площадке. Здесь тоже решающую роль играет портрет пользователя – за что именно он готов выложить деньги. Отправка подарков, донаты в онлайн-играх, доступ к скрытой информации, средства и инструменты развлечения и многое другое. Авторские способы монетизации . Нестандартная схема получения прибыли тоже может родиться из изучения интересов пользователей. Например, к узкоспециализированному сайту для рукодельниц можно прикрепить биржу для продажи хенд-мейда. Владелец зарабатывает на комиссионных, а сайт с такой возможностью привлечет больше людей, желающих зарабатывать на своем творчестве. И самое главное! Мало создать хороший продукт. Жизнь ему даст только доверие пользователей. Даже самая лучшая социальная сеть останется без участников, если под нагрузкой большого притока трафика она «ложится». Именно поэтому, не стоит пытаться внедрять подобные проекты на базе публичных бесплатных решений. Обращайтесь к профессионалам, например, в Qwerty Networks. Современный пользователь избалован высоким качеством, не забывайте об этом. Источник |