скрипт соц сети с приложением андроид
Простой и удобный способ добавления социальных сетей в Андроид приложение на примере Вконтакте и Одноклассники
Во время разработки приложений на Андроид часто встает вопрос интеграции социальных сетей в приложение. Логин через социальную сеть, рассказать друзьям, просмотреть список друзей — встречаются почти в каждом приложении.
Для этого можно воспользоваться модулями библиотеки ASNE.
Используя модуль библиотеки вы подключите SDK или API выбранной социальной сети и интерфейс для наиболее часто используемых запросов к ней, тем самым сэкономив время и упростив добавление другой социальной сети. Благодаря использованию SDK, пользователь может залогиниться или расшарить запись через уже установленное приложение социальной сети. А добавить социальную сеть как модуль, если ее нет в разработанных, не составит труда — это легко сделать по аналогии с любым другим модулем.
В данной публикации я покажу, как можно легко добавить поддержку VK и Odnoklassniki в приложении под Android, используя соответствующие модули ASNE. В статье рассмотрен упрощенный пример, включающий добавления логина, записи с ссылкой на стену пользователя и вывода списка друзей.
Регистрация приложения в социальной сети
Для добавления социальной сети в приложение потребуется ключ для совершения запросов. Поэтому первым шагом необходимо зарегистрировать приложение — по ссылкам вы увидите краткое руководство по созданию приложения для:
Интеграция Вконтакте и Одноклассники в приложение
После создания нового проекта сохраним ключи в 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 — это просто:
Весь исходный код 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.
В данный момент библиотека стабильна и находится в состоянии добавления социальных сетей. Буду рад вашим советам или помощи в разработке.
Простой клиент-сервер на Android (интернет-мессенджер)
Важно. Все написанное ниже не представляет собой какой либо ценности для профессионалов, но может служит полезным примером для начинающих Android разработчиков! В коде старался все действия комментировать и логировать.
Поехали. Многие мобильные приложения (и не только) используют архитектуру клиент-сервер. Общая схема, думаю, понятна.
Уделим внимание каждому элементу и отметим:
Клиент, установленный на устройстве А, посылает сообщение для клиента, установленного на устройстве Б. И наоборот. Сервер играет роль связующего звена между устройством А и Б… С, Д… и т.д. Также он играет роль «накопителя» сообщений, для их восстановления, на случай удаления на одном из клиентских устройств.
Для хранения сообщений используем SQL БД как на сервере, так и на устройствах-клиентах (в принципе, вся работа клиентов интернет-мессенджеров и сводится к постоянной синхронизации локальной и удаленной БД с сообщениями). Дополнительно, наш интернет-чат будет уметь стартовать вместе с запуском устройства и работать в фоне. Взаимодействие будет происходить путем HTTP запросов и JSON ответов.
Более логично, если синхронизация происходит через порт/сокет, это с одной стороны упрощает задачу (не нужно циклично слать HTTP запросы на проверку новых сообщений, достаточно проверять состояние прослушиваемого сокета), но с другой стороны, это усложняет создание серверной части приложения.
Делаем сервер
Для реализации «сервера», нам нужно зарегистрироваться на любом хостинге, который дает возможность работы с SQL и PHP.
Создаем пустую SQL БД, в ней создаем таблицу.
Структура запросов к api:
Клиентская часть
Теперь структура Android приложения:
В фоне работает FoneService.java, который, в отдельном потоке, каждые 15 секунд делает запрос на сервер. Если ответ сервера содержит новые сообщения, FoneService.java записывает их в локальную БД и отправляет сообщение ChatActivity.java о необходимости обновить ListView, с сообщениями. ChatActivity.java (если она в этот момент открыта) получает сообщение и обновляет содержимое ListView из локальной БД.
Отправка нового сообщения из ChatActivity.java происходит сразу на сервер, минуя FoneService.java. При этом наше сообщение НЕ записывается в локальную БД! Там оно появится только после получения его назад в виде ответа сервера. Такую реализацию я использовал в связи с важным нюансом работы любого интернет-чата — обязательной группировкой сообщений по времени. Если не использовать группировку по времени, будет нарушена последовательность сообщений. Учитывая, что клиентские приложения просто физически не могут быть синхронизированы с точностью до миллисекунд, а возможно будут работать даже в разных часовых поясах, логичнее всего будет использовать время сервера. Так мы и делаем.
Создавая новое сообщение, мы передаем запросом на сервер: имя автора сообщения, имя получателя сообщения, текст сообщения. Получая эту запись назад, в виде ответа сервера, мы получаем то, что отправляли + четвертый параметр: время получения сообщения сервером.
Анализ взаимодействия мобильных Android-приложений с API социальных сетей Facebook, Instagram, ВКонтакте
Не секрет, что большинство крупных сервисов на серверной стороне используют какой-либо API (Application Programming Interface) для взаимодействия с различными клиентами.
На «очной ставке» NeoQUEST-2016 Максим Хазов рассказал о различных подходах к определению и использованию скрытого серверного API-функционала на примере таких популярных сервисов, как ВКонтакте, Instagram, Facebook.
В данной статье остановимся на основных моментах доклада и поделимся всеми электронными материалами: видеозаписью выступления, презентацией, а также демонстрациями атак для каждой рассматриваемой социальной сети (всё под катом).
Намекнём: «прогулки» по социальным сетям ещё предстоят участникам NeoQUEST-2017, регистрация на online-этап которого идет полным ходом!
Как это звучало на NeoQUEST?
Сразу же, как и обещали, делимся презентацией (тык) и докладом:
Зачем определять API?
Основных цели в данном случае две:
Как изучать API?
Есть 3 главных направления:
Примеры и демонстрации
Для демонстраций была использована контролируемая Wi-Fi точка, а также прокси для HTTP-запросов Burp Suite. В данном случае все тестируемые приложения взаимодействовали с API с помощью протокола HTTP и его модификаций.
ВАЖНО!
Исследование проводилось весной-летом 2016 года, на данный момент в архитектуре приложений и протоколов взаимодействия могут быть изменения (например, с ноября 2016 приложение ВКонтакте для Android больше не поддерживает протокол HTTP).
ВКонтакте и незащищенный протокол HTTP
Мобильное приложение ВКонтакте под Android по умолчанию использует протокол HTTP, а значит (как было показано в первой части доклада, видеозапись которого в конце статьи):
Instagram и HTTPS
Во второй части доклада было рассмотрено приложение Instagram под Android, для взаимодействия с API оно использует защищенный протокол HTTPS (HTTP + SSL). Это значит, что в общем случае (при отсутствии доступа к устройству у исследователя и достаточно современной версии TLS) протокол взаимодействия не уязвим к атакам MITM.
Но, имея доступ к телефону, можно установить на него свой корневой сертификат и легко расшифровывать трафик, подменяя сертификаты для HTTPS соединений (BurpSuite умеет это делать в автоматическом режиме). В демонстрации показаны перехват шифрованного трафика после установки на телефон контролируемого корневого сертификата и нахождение в нем запроса к API, отвечающего за лайк к фотографии.
У Instagram существует публичное документированное API для разработчиков. В нем заданы достаточно строгие лимиты для ключевых функций (лайки, подписки, постинг и т.д.). Как выяснилось, приложение Instagram использует другое, приватное API, в котором, разумеется, подобных лимитов нет.
Чем интересно это приватное API в плане “ботоведения”? Главное отличие приватного API: подпись всех важных запросов секретным ключом (уникальным для версии приложения). Так как ключ хранится внутри приложения, можно достать его с помощью реверс-инжиниринга приложения.
Facebook и SSL Pinning
В третьей части доклада было рассмотрено приложение Facebook под Android. Данное приложение для взаимодействия с API использует защищенный протокол HTTPS + надстройку под названием SSL Pinning.
SSL Pinning – внедрение в код мобильного приложения SSL-сертификата сервера API. Эта технология предназначена для защиты от перехвата трафика путем установки корневого сертификата на устройство и подмены сертификатов.
Тем не менее, SSL Pinning можно отключить (и даже разными способами):
Как выяснилось при анализе трафика, мобильное приложение Facebook использует некоторые недокументированные методы API (в том числе, для регистрации аккаунтов и входа в систему).
Также был найден недокументированный метод API, позволяющий получить ID пользователя Facebook по номеру телефона. Вот как выглядит демонстрация возможного автоматизированного использования полученных недокументированных методов:
В заключение
При должном желании всегда можно проанализировать протокол взаимодействия между мобильным приложением и сервером. Использование дополнительных средств защиты (таких, как SSL Pinning) может лишь несколько затруднить работу исследователю. Поэтому разработчикам следует избегать использования привилегированных недокументированных методов API в приложении (особенно если есть публичное и документированное API).
Кроме того, есть возможность сделать бота, который будет отправлять точно такие же запросы, как официальное мобильное приложение. Для борьбы с подобными ботами можно порекомендовать усложнять структуру запросов к API и тщательно анализировать все параметры запросов на серверной стороне.
На «очной ставке» NeoQUEST-2017, которая пройдет 29 июня в Питере, как и всегда, будут классные доклады о самых актуальных тенденциях кибербезопасности, современных механизмах защиты и способах их обхода.
Если ты не из Питера, смело планируй свой отпуск на июнь и приезжай! Белые ночи, разводные мосты, бесконечные дожди и NeoQUEST-2017 космической тематики с докладами, демонстрациями, конкурсами и призами — все это ждет тебя. Также ты можешь посетить «очную ставку» как участник hackquest и сразиться за главный приз — поездку на одну из международных конференций по информационной безопасности! Для этого — регистрируйся тут и с 1 по 10 марта проходи задания online-этапа. Возможно, именно ты окажешься лучшим? Узнаем 10 марта…
Скрипт соц сети с приложением андроид
Хотел бы поделится ссылкой и получить отзывы и пожелания.
Библиотека позволяет при подключении ее в буквально пару строк кода включить поддержку в
— Vkontakte
— Odnoklassniki
— Twitter
— LinkedIn
— Facebook
— Google Plus
Библеотека охватывает практически все необходимые запросы к социальным сетям
1) Подключение и вход в социальные сети
2) Настройка необходимых вам разрешений для социальных сетей
3) Получение Access Token
4) Получение профиля текущего пользователя
5) Получение профиля любого пользователя
6) Получение профилей массива пользователей
7) Детальная информация о пользователе
8) Отправка сообщений в ленту пользователя
9) Прикрепление изображений в ленту пользователя
10) Отправка ссылки в ленту пользователя
11) Вызов диалогового окна с предварительно составленным сообщением
12) Проверка является ли пользователь другом текущего пользователя
13) Запрос списка друзей
14) Добавление друга
15) Удаление друга
16) Любой необходимый вам запрос Вы можете отправить самостоятельно получив соответствующий объект
В вики(https://github.com/gorbin/ASNE/wiki) можно подробнее ознакомится с основными методами(https://github.com/gorbin/ASNE/wiki/Список-методов-So..)
Там же подробно описано как создать приложение для социальных сетей
Библиотека была разработана на основе AndroidSocialNetworks, куда я сейча пуллю дополнения, но и содержит на текущий момент наши отечественные социальные сети.
Как скачивать музыку и видео из соцсетей без запретов?
Сам себе программист: ставим скрипты для скачивания музыки, видео и фото с ВК, Youtube, Instagram.
Google договорился с Вконтакте и запрещает в Chrome Web Store расширения, позволяющие скачивать музыку и видео с ВК… Но если трек или ролик не защищен авторскими правами, ничто не мешает вам его скачать. Читайте, как сделать себе загрузчики видео и музыки из соцсетей, которые никто никогда не заблокирует — и ищите ссылки в конце статьи!
Суть метода
Способ, с помощью которого можно скачивать музыку и видео из соцсетей без опасений, что программа для закачки в один прекрасный день откажет, потому что борьба с пиратством, глубоко универсален. Он заключается в использовании браузерных скриптов для соцсетей.
Скрипты — это подпрограммы, которые выполняются внутри вашего браузера и изменяют работу определенного сайта. Например, добавляют кнопку скачивания к каждой аудиозаписи ВКонтакте.
Ничего не напоминает? Неудивительно, потому что все загрузчики мультимедиа из соцсетей, типа Savefrom.net, по сути, и представляют собой наборы браузерных скриптов.
А вот чтобы не зависеть от разработчиков таких наборов и их взаимоотношений с Google или ВКонтакте, достаточно научиться искать и устанавливать скрипты для скачивания самостоятельно. Это отнюдь не так страшно, как звучит — для этого нужно сделать всего два шага.
Шаг первый: устанавливаем менеджер скриптов
Первый шаг к беспрепятственному скачиванию контента из соцсетей заключается в том, чтобы установить расширение для вашего браузера, позволяющее скачивать и запускать браузерные скрипты.
Выберите свой браузер из представленного ниже списка, скачайте и установите для него менеджер скриптов по одной из нижеприведенных ссылок:
Шаг последний: устанавливаем скрипт закачки
После этого можно, собственно, установить скрипты, позволяющие скачивать музыку, видео или изображения в нужных вам соцсетях. В интернете таких скриптов сотни. Существуют сайты-библиотеки скриптов, например OpenUserJS или GreasуFork, на которых можно найти массу разных «качалок» на любой вкус для всевозможных сайтов.
CHIP прогулялся по библиотеке GreasуFork и собрал для вас скрипты, позволяющие скачивать контент из разных социальных сетей — ВКонтакте, Facebook, Instagram и других.
Браузерные скрипты, в отличие от многих расширений, работают совершенно незаметно, без рекламы и уведомлений. А еще их крайне сложно убрать из интернета запретами и ограничениями: разве что посадить в тюрьму безвестного китайского программиста, который скрипт написал и поддерживает. А заодно — всех, кто его скачал. Ну, или изменить API всей соцсети, чтобы запретить его использование.
Вот подборка скриптов для скачивания музыки, видео и другого контента из популярных социальных сетей: