Php 超出Instagram实时API OAuth限制

Php 超出Instagram实时API OAuth限制,php,curl,instagram,Php,Curl,Instagram,我正在尝试设置订阅,几分钟前刚刚创建了一个帐户和客户端。当我尝试使用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 h

我正在尝试设置订阅,几分钟前刚刚创建了一个帐户和客户端。当我尝试使用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'];
}
?>

我对Instagram API有很多经验,我要告诉你,它们很少出错。您的错误有5476个请求,这一事实告诉我,在您的情况下,它们也没有错。Instagram会在收到5000个请求时自动生成429响应,这意味着从您发出5000个请求到429响应被触发、生成和推回,您又发出了476个请求。根据我的经验,这听起来是对的,因为这一切几乎是瞬间发生的

此外,当这种情况发生时,Instagram可能需要相当长的时间才能接受来自该特定帐户或客户端ID的任何API请求。当这种情况发生时,我只需从Instagram developer中删除旧应用程序,并创建一个新的应用程序,它实际上是相同的,只是具有不同的客户端ID和密码

从您发布的代码来看,您似乎在递归地要求Instagram搜索有kitten的媒体。if和else语句最终都会发出相同的请求,并且无论出于何种原因,都会创建一个无限的请求循环


这就是我从你的帖子中所能告诉你的——如果你能提供实现Instagram API的代码,即客户端ID、回调URL、客户端机密……显然我不需要实际信息,只需要看看它是如何实现的,在哪里实现的,那我肯定能帮你弄明白。

这可能表明你的代码中有错误。当您认为自己只发送了一个请求时,您可能正在发送数千个请求。我同意@dubstyle-请发布您的代码,以便我们看到发生了什么。我是否应该使用命令行cURL请求设置订阅?看起来你是对的,有一个循环的请求。我还没有实现如何处理订阅。我发布的代码是我目前拥有的所有代码。我现在只想设置订阅。在第一个请求返回JSON后,需要添加某种kill开关。你收到JSON了吗?如果是,你是如何处理的。看到这些代码可能会提供一些见解。一旦得到响应(200、400或其他),就需要添加一个方法来终止请求。像curl\u close$curl\u handle这样的东西应该可以工作。