0

私は 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());
4

2 に答える 2

0

すべての認証作業を行うjcabi-github (私はその開発者の 1 人です) を使用できます。

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());
}
于 2014-02-19T03:30:19.553 に答える
0

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

取得した最新の応答に含まれる番号が返されます。

于 2013-01-17T17:11:17.827 に答える