即使在基本身份验证之后,Github API速率限制为60

时间:2016-02-05 05:01:38

标签: github github-api

我使用以下方法进行了基本身份验证:

curl -u "username:password" https://api.github.com

我得到了输出:

{
  "current_user_url": "https://api.github.com/user",
  "current_user_authorizations_html_url": "https://github.com/settings/connections/applications{/client_id}",
  "authorizations_url": "https://api.github.com/authorizations",
  "code_search_url": "https://api.github.com/search/code?q={query}{&page,per_page,sort,order}",
  "emails_url": "https://api.github.com/user/emails",
  "emojis_url": "https://api.github.com/emojis",
  "events_url": "https://api.github.com/events",
  "feeds_url": "https://api.github.com/feeds",
  "followers_url": "https://api.github.com/user/followers",
  "following_url": "https://api.github.com/user/following{/target}",
  "gists_url": "https://api.github.com/gists{/gist_id}",
  "hub_url": "https://api.github.com/hub",
  "issue_search_url": "https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}",
  "issues_url": "https://api.github.com/issues",
  "keys_url": "https://api.github.com/user/keys",
  "notifications_url": "https://api.github.com/notifications",
  "organization_repositories_url": "https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}",
  "organization_url": "https://api.github.com/orgs/{org}",
  "public_gists_url": "https://api.github.com/gists/public",
  "rate_limit_url": "https://api.github.com/rate_limit",
  "repository_url": "https://api.github.com/repos/{owner}/{repo}",
  "repository_search_url": "https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}",
  "current_user_repositories_url": "https://api.github.com/user/repos{?type,page,per_page,sort}",
  "starred_url": "https://api.github.com/user/starred{/owner}{/repo}",
  "starred_gists_url": "https://api.github.com/gists/starred",
  "team_url": "https://api.github.com/teams",
  "user_url": "https://api.github.com/users/{user}",
  "user_organizations_url": "https://api.github.com/user/orgs",
  "user_repositories_url": "https://api.github.com/users/{user}/repos{?type,page,per_page,sort}",
  "user_search_url": "https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"
}

之后我使用以下方法检查了限制:

curl https://api.github.com/rate_limit

输出:

{
  "resources": {
    "core": {
      "limit": 60,
      "remaining": 0,
      "reset": 1454651040
    },
    "search": {
      "limit": 10,
      "remaining": 10,
      "reset": 1454648425
    }
  },
  "rate": {
    "limit": 60,
    "remaining": 0,
    "reset": 1454651040
  }
}

限制仍然是60.缺少什么?

2 个答案:

答案 0 :(得分:3)

使用basic authentication,您需要在每次通话时传递用户名/密码。换句话说,要获得经过身份验证的用户的速率限制,请使用;

> curl -u "username:password" https://api.github.com/rate_limit

{
  "resources": {
    "core": {
      "limit": 5000,
      "remaining": 4997,
      "reset": 1454652855
    },
    "search": {
      "limit": 30,
      "remaining": 30,
      "reset": 1454649452
    }
  },
  "rate": {
    "limit": 5000,
    "remaining": 4997,
    "reset": 1454652855
  }
}

答案 1 :(得分:0)

如果您希望获得5000个请求限制,请在github帐户设置中创建一个令牌,然后使用以下代码。

仅供参考,代码使用Java脚本

let username = "*******";
    let password = "******";
    let auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
    
    var options = {
        host: 'api.github.com',
        path: '/search/repositories?q=google%20maps%20api',
        method: 'GET',
        headers: {
                'user-agent': 'node.js',
                "Authorization": auth
                 }
                 };
    var request = https.request(options, function (res) {
                  }));