我正在使用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());
答案 0 :(得分:0)
OAuthService类用于更改用户的OAuth授权,而不是用于创建与GitHub的授权连接!如果您只想获取有关存储库的信息,则不需要这样做。
首先应确定是否要使用基本身份验证(具有用户名和密码的身份验证)或OAuth身份验证(使用令牌),然后根据available service classes之一实例化服务对象,具体取决于您要检索的信息。
对于存储库信息,这将是:
RepositoryService service = new RepositoryService();
然后添加授权信息:
service.getClient().setCredentials("user", "passw0rd");
或强>
service.getClient().setOAuth2Token("your_t0ken");
现在您可以查询存储库列表或执行其他操作:
List<Repository> repositories = service.getRepositories();
要获取剩余请求,您可以致电:
service.getClient().getRemainingRequests();
将返回您收到的最新response中包含的数字。
答案 1 :(得分:0)
您可以使用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());
}