GitHub API limit


GitHub API limit

我有一个iOS Cookies网站,我在那里把用Swift编写的库(目前有190个)分为几类。当显示类别时,我会显示它的库列表,其中包含GitHub的星数和描述。

由于恒星的数量不一定是准确的,我决定用CRON的工作(每天一次)同时为每个图书馆获取它。问题是由于某种原因,我达到了API限制:

您已达到GitHub小时限制!实际限额为:5000

这很奇怪,因为只有不到200个库,每个库只调用一次,就像这样:

// GitHub API
$this->github = new GitHub($page);
// list of libraries stored in .yaml file
$libraries = $this->config->get('plugins.swift-version.libraries');
$arrlength = count($libraries);
$array = Array();   
for($x = 0; $x < $arrlength; $x++) {
    $link = $libraries[$x]['link'];
    $path = parse_url($link, PHP_URL_PATH);
    $segments = explode('/', $path);
    $author = $segments[1];
    $repo = $segments[2];
    // actual API calling to get number of stars for library
    $libraries[$x]['stargazers_count'] = $this->github->client->api('repo')->show($author, $repo)['stargazers_count'];     
}

我是不是错过了什么?

为了避免编写完整的API客户端的麻烦,也因为该客户端在我的待办事项列表中,所以我无论如何都需要试用github API,这里有一个快速而肮脏的示例,它只使用一个API请求:

$url = "https://api.github.com/repos/realm/realm-cocoa";
$token = /* https://github.com/settings/tokens */;
$headers = [
    'Authorization: token ' . $token,
];
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $url,
    CURLOPT_HEADER => false,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0',
]);
$foo = json_decode(curl_exec($ch), true);
curl_close($ch);
var_dump($foo['description'], $foo['stargazers_count']);

输出:

string(64) "Realm is a mobile database: a replacement for Core Data & SQLite"
int(5888)