超出Instagram实时API OAuth限制

时间:2015-04-13 15:50:45

标签: 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 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'];
}
?>

1 个答案:

答案 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;需要实际的信息,只需看看它是如何以及在何处实施的,然后我确定我能为你解决这个问题。