我使用令牌通过Octokit客户端访问github api。
client = Octokit::Client.new(access_token: TOKEN)
看起来还可以:
client.rate_limit
=> #<struct Octokit::RateLimit
limit=5000,
remaining=4998,
resets_at=2013-11-25 03:38:41 +0200,
resets_in=3533>
所以现在我想得到一些信息
repo = client.repo 'rails/rails'
repo.rels[:events]
repo.rels[:events].get.data
但当我得到下一页时
repo.rels[:events].get[:next]
我达到了每小时60次请求的速率限制。
下一个请求似乎没有通过令牌进行授权。
如何使所有请求都通过令牌进行授权?
可能您的令牌已过期,或者您的client
变量丢失了作用域。
创建一个带有身份验证的initializers/octokit.rb:
Octokit.configure do |c|
c.client_id = ENV['GITHUB_ID']
c.client_secret = ENV['GITHUB_SECRET']
end
我选择了凭身份和秘密行事。
并通过以下方式提出您的请求:
repo = Octokit.repo 'rails/rails'
创建初始化器后,可以在rails c
:中进行测试
> Octokit.rate_limit
=> #<struct Octokit::RateLimit limit=5000, remaining=4927, resets_at=2016-04-22 12:24:52 -0300, resets_in=2102>
摘自Octokit文档:
注意:虽然Octokit自动分页会将页面大小设置为最高100,并寻求不超过你的利率限制,你可能希望使用自定义模式遍历大型列表。