Это приложение наделено следующим функционалом:
- Поиск пользователей GitHub.com;
- Вывод информации о найденных пользователях (их подписчиках, репозиториях);
- Аутентификация способом OAuth2.0 на GitHub.com с использованием сервиса Firebase Authentication и вывод базовой информации о залогиненном пользователе.
На момент составления описания, после клонирования репозитория проект должен собираться и работать, все необходимые для этого файлы внесены под контроль git (включая файл google-services.json, необходимый для работы Firebase Authentication и токен GitHub для отправки HTTP-запросов).
- https://api.github.com/search/users?q=kirkaDev (поиск пользователя с указанным именем)
- https://api.github.com/users/kirkaDev/followers (поиск информации о подписчиках)
- https://api.github.com/users/kirkaDev/repos (поиск информации о коммитах)
Документация к API расположена по адресу: https://docs.github.com/en/rest
Запрос отправляется с заголовком Authorization (используется персональный personal access token разработчика), это позволяет отправлять 5000 запросов в час (без авторизации действует ограничение 60 запросов в час) Basic authorization с использованием пары логин-пароль больше не используется (c 13.11.2020г.)
Для того, чтобы не зависеть от изначально использованных токенов и зарегистрированных OAuth2-приложений в учетной записи разработчика, необходимо выполнить следующее.
- Для Basic-авторизации создать свой personal access token в настройках аккаунта GitHub и передать его в константу DEVELOPER_PERSONAL_TOKEN в закодированном виде (Base64)
- Для выполнения OAuth-авторизации:
- Создать в настройках профиля GitHub новый Authorized OAuth App, получить Client ID, Client secret.
- Создать проект в консоли разработчика Firebase (https://console.firebase.google.com/)
- Изменить applicationId в Android Manifest, Gradle (т.к. Firebase не позволит создать еще один проект с уже существующим appId)
- Скачать и заменить существующий файл google-services.json вновь сгенерированным.
- Подключить сервис Authentication в консоли Firebase, выбрать вариант провайдера авторизации "GitHub"
- Ввести полученные на GitHub значения Client ID, Client secret.