我的应用程序刚刚停止从soundcloud获取身份验证令牌。我正在使用php api并发送请求为:
$client = new Services_Soundcloud(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
$code = $_GET['code'];
$access_token = $client->accessToken($code);
从早上开始,我回复了以下回复:
{"errors":[{"meta":{"rate_limit":{"bucket":"by-ip","max_nr_of_requests":100,"time_window":"PT1H","group":"oauth2_token"},"remaining_requests":0,"reset_time":"2015/08/13 12:03:38 +0000"}}]}
直到昨晚它使用相同的代码才能正常工作。
答案 0 :(得分:1)
SoundCloud以其无限的智慧,选择在/ oauth2 / token端点上推出速率限制。它们只允许来自同一IP地址的100个请求/小时。这会对使用服务器端身份验证流的应用程序造成严重问题,因为对该应用程序的/ oauth2 / token端点的所有请求都来自服务器,一旦应用程序超过100人,就会达到速率限制尝试在一小时内进行身份验证。
通过使用SoundCloud Javascript SDK切换到客户端身份验证流程,我能够解决此问题。这样可以使用户的浏览器发出/ oauth2 / token请求,而不是服务器,这样可以避免速率限制。
这就是我自己处理问题所学到的一切--SoundCloud实际上并未公开发布有关此新速率限制的任何文档。看起来他们对开发人员的友好程度越来越低,所以我会担心将来依赖API的稳定性。