github java api лучший способ авторизовать мое приложение
Я работаю с github java api и хочу получить информацию о репозиториях и их пользователях. У меня вопрос, как я могу авторизовать свои запросы, чтобы иметь полный доступ к API (5000 запросов / час). Также было бы очень полезно, если бы можно было в любое время увидеть, сколько запросов осталось для моего приложения, чтобы не превысить ограничение скорости API. Код ниже - то, что я делаю сейчас, но с этим кодом я превышаю ограничение скорости.
this.username = ConfigurationParser.parse("username");
this.password = ConfigurationParser.parse("password");
OAuthService oauthService = new OAuthService();
oauthService.getClient().setCredentials(this.username, this.password);
Authorization auth = new Authorization();
try {
auth = oauthService.createAuthorization(auth);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(auth.getApp().getName());
service.getClient().setOAuth2Token(auth.getToken());
2 ответа
Вы можете использовать jcabi-github (я один из его разработчиков), который выполняет всю аутентификацию за вас:
Github github = new RtGithub("user", "password");
Теперь у вас есть клиент, который может помочь вам манипулировать сущностями Github, например, вы можете перечислить все проблемы в данном репозитории:
Coordinates coords = new Coordinates.Simple("jcabi/jcabi-github");
Repo repo = github.repos().get(coords);
for (Issue issue : repo.issues().iterate(Collections.<String, String>emptyMap())) {
System.out.println("Issue found: #" + issue.number());
}
Класс OAuthService предназначен для изменения авторизаций OAuth пользователя, а не для создания авторизованного соединения с GitHub! Вам это не понадобится, если вы просто хотите получить информацию о репозиториях.
Сначала вы должны решить, хотите ли вы использовать базовую аутентификацию (с именем пользователя и паролем) или аутентификацию OAuth (с использованием токена), а затем создать экземпляр объекта службы из одного из доступных классов обслуживания в зависимости от информации, которую вы хотите получить.,
Для информации о хранилище это будет:
RepositoryService service = new RepositoryService();
Затем вы добавляете информацию об авторизации:
service.getClient().setCredentials("user", "passw0rd");
ИЛИ ЖЕ
service.getClient().setOAuth2Token("your_t0ken");
Теперь вы можете запросить список репозиториев или сделать что-нибудь еще:
List<Repository> repositories = service.getRepositories();
Чтобы получить оставшиеся запросы, вы можете позвонить:
service.getClient().getRemainingRequests();
который вернет номер, включенный в последний полученный вами ответ.