2015-09-06 90 views
0

我已成立一個cron作業跟蹤誰喜歡Instagram上我特別喜歡的媒體Instagram的。軌道通過cron作業

我從節約實時訂閱,然後查詢API媒體ID來獲得誰喜歡它,每隔1小時後保存的用戶ID,工作正常,但因爲它需要太多的請求,服務器沒有經過優化。

任何較好地解決了這一點。在我的代碼的一小段代碼之下。

<?php 
while($row = mysqli_fetch_assoc($r)){ 
$media_id=$row['media_id']; 
$url='https://api.instagram.com/v1/media/'.$media_id.'/likes?access_token='.$access.''; 
$inst_stream = callInstagram($url); 
$results = json_decode($inst_stream, true); 
foreach($results['data'] as $item){ 
$insta_id=$item['id']; 
// insert & update code 
}} 
?> 
+0

它是否需要太多的請求到Instagram服務器,因爲你有很多'$ media_id'或太多的請求到你自己的mysql服務器爲了保存user_ids? –

+0

我更關心instagram服務器。您認爲什麼可以成爲替代/優化的解決方案? – Roger

回答

0

我假設您希望保持在一定的API率限制內。

看來,Instagram的不允許傳遞多個media_id的,所以你被卡住每個媒體ID只能有一個請求。

如果您有更多項目(media_id)要跟蹤每小時限制,那麼我建議按小時批量分割請求。

Ex。如果每小時費率限制爲5000個請求,並且您需要跟蹤10000個圖像,則需要使用
然後分兩批分別記錄媒體ID和
您將使用一些參數運行兩個腳本或兩次相同的腳本。

的Instagram提供了速率限制配額的一些信息,
看到這裏包括對響應您的每一個電話,使您的應用程序,以確定HTTP標頭https://instagram.com/developer/limits/
關於全球速率限制信息的與這些費率限制相關的當前狀態。

這一切都取決於你需要多少個項目進行跟蹤,
但是,所有你能做的就是變通的每小時訪問令牌5000個的請求速率限制的侷限。

您仍然發送每個媒體ID只能有一個請求。

+0

你有例子,如何使用批量要求? – Roger