簡體   English   中英

cURL調用Twitter API會議“速率限制”而不超過5個請求

[英]cURL call to Twitter API meeting “Rate Limit” without making more than 5 requests

我剛剛開始亂用一個非常非常基本的Twitter API(http://api.twitter.com/1/statuses/user_timeline.json)來通過cURL將我的推文拉到我的網站。 然而,使用一個沒有人知道的頁面(從而消除了無意中流量的可能性),在我有機會測試它之前,我得到了一個超出限速的東西。 它表示它會在一小時后重置5次,所以我再次檢查,並且有一分鍾它可以工作但是它又回來告訴我我的速率限制被超過了。 對於了解Twitter API和/或cURL的人來說,有幾個問題:

首先,是應用於我的服務器(而不是用戶)的速率限制? 我會這么認為,但這當然會讓它變得艱難。 即使每個訪問者有一個API調用,在具有邊際流量的站點上,也可以在一小時內輕松超過速率限制。 有沒有辦法將呼叫與訪客關聯,而不是服務器? 似乎可能沒有,但我不完全確定整個API是如何工作的,並且cURL似乎在許多地方都提倡。 我知道如果我使用JSON和AJAX,我可以向用戶發出請求,但僅僅是為了爭論,cURL呢?

第二,任何想法如何在不刷新頁面的情況下超越我的速率限制? 我支付在另一個地方托管,所以我可能與另一個網站共享服務器空間,但我的網站肯定有一個獨特的IP,所以應該...那應該沒問題,對吧? 那么即使運行代碼(或運行一次代碼?),我如何超過速率限制?

這是我的代碼,如果它有幫助:

$ch=curl_init("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=screenname");
    curl_setopt_array($ch,array(
            CURLOPT_RETURNTRANSFER=>true,
            CURLOPT_TIMEOUT=>5,
        )
    );
$temp=curl_exec($ch);
curl_close($ch);
$results=json_decode($temp,true);

此外,我現在已經得到它,以便如果Twitter返回速率限制錯誤,它會在文本文件中記錄錯誤,以及限制將重置的時間。 看看那個文件,它唯一一次更新(我沒有重寫,它只是添加)是我加載頁面(可能一小時一兩次),所以它不像其他東西正在使用此頁面並調用此URL。

有幫助嗎?

經過身份驗證的請求應計入用戶的350 /小時限制。 未經身份驗證的請求將根據您的IP地址的150 /小時限制計算。

如果您在開發期間遇到限制,Twitter通常非常願意將開發服務器IP列入白名單。

http://dev.twitter.com/pages/rate-limiting

某些應用程序發現默認限制證明不足。 在這種情況下,我們提供白名單。 可以將用戶帳戶和IP地址列入白名單。 每個白名單實體(無論是帳戶還是IP地址)每小時都允許20,000個請求。 如果您正在開發一個應用程序並希望被列入白名單,請填寫白名單申請表 由於請求量很大,我們無法全部回復。 如果您的請求已獲批准,您將收到一封電子郵件。

暫無
暫無

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

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