2015-09-06 128 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