簡體   English   中英

如何在沒有限制費率問題的情況下關注使用Instagram API的用戶?

[英]How can I follow users using the instagram API without the limit rate issue?

我想在instagram中關注用戶ID列表。 我做了列表,當我嘗試使用api發送跟隨請求時,我收到此錯誤:達到客戶端請求限制(代碼:400)

開發人員文檔說:“每個access_token或client_id整體限制為每小時5000個請求。”

但是當我收到此錯誤時,我的代碼幾乎沒有跟蹤50個用戶ID!

還有一件事,當我收到這個錯誤時,我試圖在Instagram應用程序直接跟蹤人們(不使用api)並且沒有問題!

這是我的代碼中的一部分,它會出現此錯誤:

foreach ($usersArr as $user) {
$i++;
$url = 'https://api.instagram.com/v1/users/'.$user->id.'/relationship?access_token='. $accessToken;
$data = 'action=follow';
$resultObj = json_decode(sendPostData($url, $data));
$responseCode = $resultObj->meta->code;
$errorMsg = $resultObj->meta->error_message;
if ($responseCode != 200)
    echo "\"" . $errorMsg . "\" AT " . date('Y-m-d H:i:s') . "\n\n";
while ($responseCode != 200){
    sleep(60);
    $resultObj = json_decode(sendPostData($url, $data));
    $responseCode = $resultObj->meta->code;
    if ($responseCode != 200) {
        $errorMsg = $resultObj->meta->error_message;
        echo "STILL \"" . $errorMsg . "\" AT " . date('Y-m-d H:i:s') . "\n\n";
    }
    elseif($responseCode == 200){
        echo "Limit Finished At: " . date('Y-m-d H:i:s') . "\n\n";
        break;
    }
}
echo "User NO. " .$i . " has been followed!" . "\n\n";
}

非常感謝 :)

我對API關系端點的體驗是,您每小時只能處理大約160個請求。 這似乎與所有操作共享(follow / unfollow / block / unblock / approve / deny)。 我一直無法找到任何允許您提前確定在超出限制之前剩余的請求數量的任何內容(與整體請求限制中的X-Ratelimit-Remaining標頭不同),我注意到任何嘗試無論是否成功,使用端點都會添加到您的請求計數中。

因為我的特定應用程序同時處理多個人,我處理小塊(大約50個請求),當我完成一個塊,或者如果我在塊中達到速率限制,我會轉移到另一個用戶一段時間(通常回來之前約10-15分鍾。

我認為API限制是每appid / clientkey,這就是為什么你可以在Instagram應用程序上關注用戶,盡管達到了你的限制。

請注意,API正在抱怨請求 ,而不是以下。 您可能關注了50個用戶,但您已經發出超過5000的API請求。使用您當前的代碼,只需要100次頁面刷新即可達到該限制。 可能聽起來像很多刷新,但如果你正在調試/開發代碼,那么假設你可以相對容易地超過100刷新閾值是合理的。

要緩解此問題,如果您仍在使用/調試此代碼,請將后續數量從50減少到1或2.一旦您的代碼正常工作,然后恢復以前的數量。 我建議你也要緩存返回對象,持續5或10分鍾。 這樣您就不必擔心超出API限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM