Интеграция социального 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;@Overrideprotected 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 . |











