Интеграция социального API является важным аспектом при разработке приложения для Android. Большую часть времени нам приходится подключаться к нескольким социальным сетям, и необходимо использовать определенный SDK. С интеграцией CloudRail Social API можно использовать только одну библиотеку API и подключаться к нескольким социальным сетям. Это очень интересно и полезно, и, кроме того, этот API бесплатный.
Прежде всего, есть несколько сценариев, в которых полезно получить профиль социального пользователя, чтобы пользователю не приходилось снова вставлять свою личную информацию. Следовательно, в этом посте шаг за шагом описывается, как использовать интеграцию с социальным API и как получить пользовательские профили социальных сетей с помощью нескольких строк кода. Без CloudRail Social API мы должны использовать разные SDK для социальных платформ (например, Twitter, Facebook и т. Д.), И это очень раздражает.
В заключение этой статьи вы узнаете, как создать приложение для Android для социальных сетей, которое подключается к различным социальным сетям и получает всю информацию. Для этого мы разработаем простое приложение для Android, которое использует интеграцию с Social API, и вы будете руководствоваться пошагово.
Окончательный результат показан ниже:
Настройка библиотеки интеграции CloudRail Social API
Первым шагом является создание андроид-проекта с использованием Android studio. Когда проект готов, мы добавляем зависимость в файл Gradle:
1
2
3
4
5
|
dependencies { compile 'com.android.support:appcompat-v7:24.2.1' compile 'com.cloudrail:cloudrail-si-android:2.7.2' compile 'com.android.support:design:24.2.1' } |
Более того, мы можем создать простой макет, который показывает список кнопок, которые мы используем для выбора социальной сети, к которой мы хотим подключиться. Я пропущу этот шаг, потому что это очень просто.
Мы осуществим этап входа в систему с помощью службы Android и, более подробно, Android IntentService , чтобы у нас не было проблем с ANR. Служба отправляет информацию после входа в систему, используя локальный приемник вещания.
Интеграция с социальным API
Ниже приведен набор параметров конфигурации для использования с различными социальными сетями. Как вы заметите, «тяжелая» работа заключается в настройке приложения, чтобы оно могло получить доступ к социальным профилям. У каждой социальной сети есть свои шаги по настройке. Как только приложение настроено, социальные API очень просты в использовании. Эти шаги описаны ниже.
Интеграция с социальным API Facebook
Перед использованием интеграции Facebook в Android необходимо авторизовать наше приложение. Это подразумевает несколько шагов:
Следующим шагом является добавление функции входа в Facebook:
Наконец, в конце этого этапа настройки у нас есть ключи аутентификации:
Это все. Мы готовы использовать логин Facebook и получить профиль пользователя:
1
2
3
4
5
|
private Profile getFacebookProfile() { Log.d( "Prf" , "Facebook Profile" ); Profile profile = new Facebook( this , "xxxxxx" , "yyy" ); return profile; } |
Интеграция с Google plus Social API
Чтобы наше приложение получило профиль пользователя Google plus, нам нужно выполнить несколько шагов настройки с помощью консоли Google :
- Настройте проект
2. Создайте учетные данные
3. Получить ключи
Хорошо, вот и все !!
1
2
3
4
5
|
private Profile getGoogleProfile() { Log.d( "Prf" , "Google Profile" ); Profile profile = new GooglePlus( this , "153867151354-xx" , "yy" ); return profile; } |
Twitter Социальная интеграция API
Таким же образом, мы можем использовать социальный API Twitter, перейдя в консоль разработчика Twitter и создав приложение для Twitter:
и после завершения настройки вы получите
В разделе « Ключи и токены доступа » у вас есть токены, которые можно использовать внутри вашего приложения:
1
2
3
4
5
|
private Profile getTwitterProfile() { Log.d( "Prf" , "Twitter Profile" ); Profile profile = new Twitter( this , "xxx" , "yyy" ); return profile; } |
Github Social API интеграция
То же самое работает с Github, перейдя на консоль github :
и наконец:
1
2
3
4
5
|
private Profile getGithubProfile() { Log.d( "Prf" , "Github Profile" ); Profile profile = new GitHub( this , "xxx" , "yyy" ); return profile; } |
Интеграция социального профиля в LinkedIn
Последняя социальная сеть — Linkedin .
Для получения профиля Linkedin мы используем:
1
2
3
4
5
|
private Profile getLinkedinProfile() { Log.d( "Prf" , "Linkedin Profile" ); Profile profile = new LinkedIn( this , "xxxx" , "yyy" ); return profile; } |
В конце вы можете заметить, что Social API использует универсальный интерфейс под названием Profile, и мы можем использовать его для единого доступа к нескольким социальным платформам . Используя этот интерфейс, приложение Android может получить всю информацию о профиле в социальных сетях. Мы рассмотрим это ниже.
Сборка приложения для Android
Теперь, когда мы знаем, как получить доступ к профилям в социальных сетях, пришло время создать приложение. Давайте создадим MainActivity.java
который обрабатывает пользовательский интерфейс и запускает LoginService, чтобы выполнить вход в систему и получить профиль пользователя. Активность показана ниже:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
public class MainActivity extends AppCompatActivity { private ResponseReceiver receiver; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); // use your key CloudRail.setAppKey( "57f669f076b9451e6xxxxx" ); Button btnFbk = (Button) findViewById(R.id.btnFbk); Button btnGp = (Button) findViewById(R.id.btnGoo); Button btnTwi = (Button) findViewById(R.id.btnTwitter); Button btnLnk = (Button) findViewById(R.id.btnLink); Button btnLGit = (Button) findViewById(R.id.btnGithub); registerReciever(); // We register the receiver to get profile info btnFbk.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { startLoginService(SocialProfile.FACEBOOK); } }); btnGp.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { startLoginService(SocialProfile.GOOGLE_PLUS); } }); // more social buttons } // Start the service, passing the social network selected private void startLoginService(SocialProfile profile) { Intent i = new Intent( this , LoginService. class ); i.putExtra(LoginService.PROFILE_INFO, profile ); startService(i); } ... } |
Приемник, в то же время, является внутренним классом, который обрабатывает входящий запрос Intent, поступающий от LoginService:
01
02
03
04
05
06
07
08
09
10
11
12
|
public class ResponseReceiver extends BroadcastReceiver { public static final String ACTION = "com.survivingwithandroidp.PROFILE" ; @Override public void onReceive(Context context, Intent intent) { Log.d( "Prf" , "Receive info" ); String fullName = intent.getStringExtra( "fullName" ); String email = intent.getStringExtra( "email" ); String url = intent.getStringExtra( "url" ); createDialog(fullName, email, url); } } |
Мы передаем детали профиля, устанавливающие значения намерения. Вместо этого вы можете использовать класс профиля, который содержит всю информацию о профиле. Этот класс должен реализовывать интерфейс Android Parcelable, чтобы вы могли передавать его из службы в действие.
И когда информация профиля готова, приложение открывает диалоговое окно, показывающее детали.
В этом примере показан профиль Github.
Наконец, исходный код LoginService.java
:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
public class LoginService extends IntentService { public static String PROFILE_INFO = "profile_info" ; public LoginService() { super ( "LoginService" ); } @Override protected void onHandleIntent(Intent intent) { Log.d( "Prf" , "Login service" ); SocialProfile socialProfile = null ; Profile profile = null ; if (intent != null ) socialProfile = (SocialProfile) intent.getSerializableExtra(LoginService.PROFILE_INFO); switch (socialProfile) { case FACEBOOK: profile = getFacebookProfile(); break ; case GOOGLE_PLUS: profile = getGoogleProfile(); break ; case TWITTER: profile = getTwitterProfile(); break ; case LINKEDIN: profile = getLinkedinProfile(); break ; case GITHUB: profile = getGithubProfile(); break ; } String fullName = profile.getFullName(); String email = profile.getEmail(); String url = profile.getPictureURL(); sendBroatcast(fullName, email, url); } |
В конце этой статьи вы, надеюсь, получили знания об использовании интеграции социальных API в Android. Вы можете использовать его для доступа к социальному профилю пользователя и получения его информации. Это может быть полезно, например, если вы хотите реализовать функцию регистрации.
Ссылка: | Интеграция социального API в Android: доступ к социальному профилю с помощью CloudRail от нашего партнера JCG Франческо Аццолы в блоге Surviving w / Android . |