我正在尝试获取用户在其Github帐户上所做的所有修改行。我做了一些PHP脚本,带有一些foreach()循环。问题是我每次从Github API收到403错误。
我已经尝试过更改标题。我正在这样做:
$get_options = array('http' => array('user_agent' => 'Dev-Purpose'));
$context = stream_context_create($options);
$jsonurl = "https://api.github.com/users/" . $github_user . "/repos";
$json = file_get_contents($jsonurl, false, $context);
所以我改为:
$get_options = [
'http' => [
'method' => 'GET',
'header' => [
'User-Agent: Gabyfle'
]
]
];
$context = stream_context_create($get_options);
$jsonurl = "https://api.github.com/users/" . $github_user . "/repos";
$json = file_get_contents($jsonurl, false, $context);
但是它不能解决问题。我仍然收到此403错误。
我这样做是为了从Github帐户获取所有修改的行:
foreach ($repositeries as $id => $value) {
$repo_name = $value["name"];
$jsonurl = "https://api.github.com/repos/" . $github_user . "/" . $repo_name . "/commits";
$json = file_get_contents($jsonurl, false, $context);
$commits = json_decode($json, true);
foreach ($commits as $id => $value) {
$sha = $value["sha"];
$jsonurl = "https://api.github.com/repos/" . $github_user . "/" . $repo_name . "/commits/" . $sha;
$json = file_get_contents($jsonurl, false, $context);
$datas = json_decode($json, true);
/* Adding lines to vars */
$totalLines = $totalLines + $datas["stats"]["total"];
$addedLines = $addedLines + $datas["stats"]["additions"];
$deletedLines = $deletedLines + $datas["stats"]["deletions"];
}
}
预期结果是Github Commits API的所有统计信息。
第一次启动脚本时,第一个循环起作用了,$totalLines
的输出为195。但是在查看我的PHP本地服务器后,我发现其他循环出现403错误。
任何人都知道如何解决此问题,因此我可以从某个Github帐户获得所有修改的行吗?
非常感谢您的宝贵时间, 加比夫。