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();

который вернет номер, включенный в последний полученный вами ответ.

Другие вопросы по тегам