Re: [請益] 噗浪機器人的問題...

看板PHP作者 (亞修)時間13年前 (2011/01/30 02:39), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《roga (任性)》之銘言: : 先檢查自己到底用量多少,有沒有一天用超過上限制 ^^ : 檢查方法: https://www.plurk.com/API/Stats?api_key=你的 KEY : 然後幾個解決方向給您參考 : 1. 寫信給噗浪要求加入白名單,解除一天 50,000 次的限制,但這個有困難, : 除非好友人數夠多 orz : 2. 檢查自己的程式寫法,除了 5 秒 call 一次應該還有別的方法。 : 舉例而言:當河道上的噗不夠多時,會一直取回重複的噗,當河道上噗太多時, : 還是會來不及取回所有的噗。所以最好的方式是記下上次取回的「最後更新時間」 : ,然後下次再以「最後更新時間」為基準取回新的噗。 : (但這也有些問題..不過一般情況是夠用了) : 當然你可以基於這個方法使用 RealTime API 。 : 3. 以你的例子,5 秒更新一次,一天只會戳 17,280 次,剩下的 quota 都可以 : 拿來回應,離要爆一天 50,000 次還有段距離。所以還是回到上一點,先檢查一下 : 程式是否有不必要的呼叫,不必要的登入,不必要的其他動作..etc : 一般來講,在 4X0,000 萬好友的情況下,大概一天會戳 300,000 次上下, : 我還記得以前好友 10,000 人左右,一天應該也戳不到 50,000 次 ^^ : http://gallery.roga.tw/var/albums/storage/Noname-1914390244.jpg
在此感謝 roga 大的回應 原來噗浪 API 有狀態可以查... 我也查了一下我的 API 次數... 一天差不多 20000 次... http://guardlan.myweb.hinet.net/plurk_api_status.jpg
原來噗浪有 RealTime API 我剛剛有研究了一下 發現 php-plurk-api 裡面有 realtime_get_user_channel 跟 realtime_get_commet_channel 這兩個 function 可用 他說先用 realtime_get_user_channel 找出 comet_server 之後再使用 realtime_get_commet_channel 來取得資料 我已經有取得 comet_server 的位址跟 offset 值,不過我呼叫 realtime_get_commet_channel 卻什麼東西也沒有 以下是我寫的程式 ================================================================ 前略... $plurk = new plurk_api(); $plurk->login($api_key, $username, $password); $result = $plurk->realtime_get_user_channel(); $comet_server = preg_replace('/\&offset=\d+/', '', $result->comet_server); $offset = preg_match('/\&offset=(\d+)/', $result->comet_server, $matches) ? $matches[1] : NULL; sleep(50); $result = $plurk->realtime_get_commet_channel($comet_server, $offset); var_dump($result); ================================================================= 是寫錯嗎~還請各位先進指教 另外我還有個問題想請教... 即使使用 RealTime API 也是需要每固定秒數去打 RealTime API 取得資料吧!? 這樣的話跟我想打 API 次數應該減差不了多少~? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.137.156

01/30 21:20, , 1F
根據API頁面的說明,沒資料的話是50秒才會回傳
01/30 21:20, 1F

01/30 21:26, , 2F
然後sleep 50秒好像是server端自己做的...
01/30 21:26, 2F

01/30 21:37, , 3F
如果是這個的話 http://plurk.lab3.tw/docs/
01/30 21:37, 3F

01/30 21:38, , 4F
realtime_get_user_channel回傳的字眼似乎沒有offset?
01/30 21:38, 4F

01/30 21:38, , 5F
(根據該文件的說明)
01/30 21:38, 5F
因為我一開始就抓不到任何值,看API的說明他說50秒後才會回傳值給我...? 所以我才在我的程式裡面下 sleep 50秒去等 API 50秒後我去取結果還是一樣沒值,所以有點納悶... 另外這樣應該也算打一次API吧... ※ 編輯: guardlan 來自: 122.116.137.156 (01/30 23:36)
文章代碼(AID): #1DH5x6F8 (PHP)
討論串 (同標題文章)
文章代碼(AID): #1DH5x6F8 (PHP)