我正在尝试设置订阅,并在几分钟前创建了一个帐户和客户端。当我尝试使用PHP和cURL发送POST请求时,我收到此错误:
{
"code":429,
"error_type":"OAuthRateLimitException",
"error_message":"You have exceeded the maximum number of requests per hour. You have performed a total of 5476 requests in the last hour. Our general maximum limit is set at 5000 requests per hour."
}
我认为,在过去一小时内我的帐户少得多的时候,甚至不可能发送这么多请求。还有其他原因Instagram会返回此错误吗?
这是我正在使用的代码。这是一个处理初始cURL请求和返回请求的页面。
<?php
if (!isset($_GET['hub.challenge'])) {
$curl_handle = curl_init('https://api.instagram.com/v1/subscriptions/');
curl_setopt($curl_handle, CURLOPT_VERBOSE, true);
curl_setopt($curl_handle, CURLOPT_POST, true);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, array(
client_id => CLIENT_ID,
client_secret => CLIENT_SECRET,
object => 'tag',
object_id => 'kitten',
aspect => 'media',
callback_url => CALLBACK_URL
));
echo curl_exec($curl_handle);
} else {
echo $_GET['hub.challenge'];
}
?>
答案 0 :(得分:0)
我对Instagram API有很多经验,我会告诉你他们很少有错。您的错误有5476个请求这一事实告诉我,他们也没有错。在5000个请求中,Instagram自动生成429响应,这意味着从您点击5000个请求到429响应被触发,生成和推回的时间,您已经发出了额外的476个请求。根据我的经验,这听起来是正确的,因为这几乎是瞬间发生的。
此外,当发生这种情况时,Instagram可能需要相当长的时间才能接受来自该特定帐户或客户端ID的任何API请求。当发生这种情况时,我只是从Instagram开发者那里删除旧的应用程序,并创建一个新的,只是具有不同的客户端ID和秘密。
从您发布的代码中,您似乎递归地要求Instagram使用#kitten搜索媒体。您的if和else语句最终都会生成相同的请求,无论出于何种原因,都会创建无限循环的请求。
我可以通过你发布的内容告诉你 - 如果你能提供实现Instagram API的代码(即CLIENT_ID,CALLBACK_URL,CLIENT_SECRET ......显然我不会&#39;需要实际的信息,只需看看它是如何以及在何处实施的,然后我确定我能为你解决这个问题。