Google URL Shortener 403超出限额

时间:2013-07-21 18:38:12

标签: google-api google-url-shortener

使用google url shortener api,它工作正常,直到我开始测试加载。尽管我已经注册使用API​​并且每天有1,000,000次点击,但很快就开始收回来自Google的403 Rate Limit Exceeded错误。我可以看到谷歌报告工具中的请求,他们只是发回403的所有内容。 403开始以大约345/350点击回到API,已持续数小时。

思想?

4 个答案:

答案 0 :(得分:8)

API将请求限制为每个用户每秒1个请求。

用户被定义为唯一的IP地址。

因此,如果您使用单个IP进行负载测试,则会导致速率限制问题。

https://developers.google.com/analytics/devguides/reporting/mcf/v3/limits-quotas#general_api

答案 1 :(得分:2)

我不认为“每个用户每秒1个请求”。正如我所说,在doc中写的是100%正确的,或google url shortener case。 (仅供参考:我使用的是“公共API访问”,而不是“OAuth”)

我遇到了几乎相同的问题,但对我来说,更有可能是“我在某些时间段内因某些网址而出现此错误”。这是什么意思?请继续阅读。

这些是我发现的:

  • 我可以使用10个帖子同时使用google url shortener,但并非总是......
  • 处理时,即使一个url在一个线程上失败,其他线程仍然可以获取其他url。
  • 当一个url失败时,后来我再次尝试了相同的url(即使没有其他进程在运行,它仍然无法在某些PERIOD OF TIME工作。甚至,我尝试添加更多字符串,如“& test = 1“,它没有帮助。但如果我改为另一个网址,它就可以了。

所以,我猜谷歌的服务器可能有每个网址的缓存。如果URL失败,它必须等待一段时间才能释放缓存。

所以,我必须编写一些令人毛骨悚然的代码来解决我的问题:

  • 当发生故障时,该特定线程将休眠1分钟(是1分钟)
  • 并继续尝试10次(完全相同,失败的网址可能是10分钟)

但是,这个令人毛骨悚然的代码对我来说很好,因为我使用的是固定线程池大小为10的ExecutorService。因此,如果失败,其他人仍然可以获得缩短的URL。它解决了这个问题......至少对我而言。

答案 2 :(得分:-5)

您需要转到Google缩短内容扩展程序,并在选项中选择“授予访问权限”

答案 3 :(得分:-8)

右键单击Extension图标,转到Options并单击底部的Grant Access。