Интеграция каналов Facebook и Twitter в приложение Android - PullRequest
4 голосов
/ 08 июня 2011

Я добавляю социальную интеграцию в свое приложение и ищу общий совет, как это сделать.

В данный момент приложение показывает ленту определенной стены Facebook (аутентификация обрабатывается Android SDK Facebook) и ленту для конкретного хэштега Twitter.Это начало, но я хочу, чтобы эти каналы делали немного больше.Для Facebook:

  • Для длинных элементов ленты пользователь должен иметь возможность «видеть больше», включая связанные изображения
  • Ссылки внутри элементов канала должны работать и открываться в браузере
  • Как / в отличие от элементов ленты
  • Комментарий к элементам ленты
  • Опубликовать на стене (создать другой элемент в ленте)

Аналогично для Twitter:

  • Ссылки внутри твитов должны работать и открываться в браузере
  • Ответить и ретвитнуть твиты
  • Создать твиты, содержащие определенный хэштег

Так как Facebook и Twitter имеют всеобъемлющие API и имеется достаточно примеров кода, все это технически выполнимо, но похоже на переопределение клиентов Facebook и Twitter.Это большая работа, чтобы правильно разобраться во всех мелких деталях, сохранить код для изменений API, и не совсем в рамках моего приложения.

Поэтому я думаю, как избежать повторной реализации клиентов Facebook и Twitter.

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

Идея вторая: подключиться к существующим приложениям с помощью системы намерений: если установлено официальное приложение Twitter, используйте его для поиска в хэштегах.Если установлен Seesmic, Twidroid или какой-либо другой твиттер-клиент, используйте его.В качестве отката откройте мобильный браузер Twitter в браузере.Аналогично для Facebook.Недостатком здесь является то, что намерения для «показа потока в Facebook» или «поиска твитов для X» не стандартизированы.Большинство современных приложений даже не имеют документированных способов подключения к ним.Использование недокументированных точек входа в этих приложениях возможно, но сделает мое приложение хакерским и ломким.

Итак, этот вопрос, как вы имели дело с интеграцией кусочков функциональности Facebook и Twitter в свои приложения или когда их видели другие?

Ответы [ 3 ]

2 голосов
/ 29 июля 2011

Вот хороший совет о том, как реализовать oauth в twitter / facebook:

  1. Создайте новое действие и назовите его OAuthActivity.
  2. Создать новый класс, расширяющий WebView.
  3. Следуйте руководству разработчика для веб-приложений на Facebook (не для мобильных!) И выполняйте вызовы oauth внутри своего WebView. Для Твиттера используйте Signpost-core с signpost-commonshttp4 для получения oauth (Facebook использует свою собственную версию oauth, поэтому вам нужно сделать это самостоятельно).
  4. Переопределите WebView, чтобы он закрывался, когда Facebook перенаправляет ваш подкласс WebView на ваш URL обратного вызова.
  5. Используйте OAuthActivity для возврата ключа / секрета OAuth вашему основному виду деятельности через RunActivityForResult.

Таким образом, изменение ориентации экрана будет работать; у вас будет та же архитектура для FB и TW.

Я реализовал это таким образом, но не могу поделиться своим кодом (он лицензирован для моей компании).

1 голос
/ 12 июня 2011

реализовать интеграцию с Twitter довольно просто на Android (вы можете использовать Twitter4J, довольно симпатичную библиотеку Java для Twitter, чтобы получить доступ к общедоступным веб-сервисам).

Интеграция твиттера / ретвости - это базовый материал после аутентификацииваш пользователь в твиттере (просто введите текстовое поле, позволяющее пользователям вводить их по 140 символов, и нажмите кнопку для его отправки - создание твитов, ретвитов, ответов и т. д. - это всего лишь 1 или 2 строки кода с использованием twitter4J).Для работы со ссылками требуется форматирование вашего списка для обработки веб-ссылок и их открытия соответствующим образом.

Самая сложная часть всей интеграции с твиттером - это выполнение OAuth - есть руководство по реализации Twitter и аутентификации OAuth.материал здесь

К сожалению, я никогда не пробовал интеграцию с Facebook, но, надеюсь, кто-нибудь сможет помочь с этим.

1 голос
/ 08 июня 2011

Когда я добавил интеграцию Facebook и Twitter в свое приложение (бесстыдный плагин: Secret Message ), я попытался вызвать установленное клиентское приложение Twitter через Intent.Это было не весело, потому что не было такого понятия, как «Facebook / текст» или «твиттер / текст».Я знаю, что некоторые приложения для Твиттера создают свои собственные, но они не используются повсеместно и даже не известны.

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

В итоге я интегрировал очень простой графический интерфейс для Facebook и Twitter в свое собственное приложение и просто использовал OAuth для аутентификации пользователей.

Надеюсь, это поможет вам выбрать направление.

...