【问题标题】:Track likes Instagram via Cron Job通过 Cron Job 跟踪喜欢 Instagram
【发布时间】:2015-09-06 09:07:22
【问题描述】:

我已经设置了一个 cron 作业来跟踪谁喜欢我在 instagram 上的特定媒体。

我正在从实时订阅中保存媒体 ID,然后查询 api 以获取喜欢它的人,并在每 1 小时后保存用户 ID,工作正常但未优化,因为它需要对服务器的请求太多。

对此有更好的解决方案。下面是我的代码的一点 sn-p。

<?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
}}
?>

【问题讨论】:

  • 是不是因为你有很多$media_id或者对你自己的mysql服务器有太多请求才能保存user_ids,所以需要对instagram服务器的请求太多?
  • 我比较关心instagram服务器。您认为什么是替代/优化的解决方案?

标签: php instagram instagram-api


【解决方案1】:

我假设您希望保持在某些 API 速率限制内。

似乎 instagram 不允许传递多个 media_id,因此您只能为每个媒体 ID 发送一个请求。

如果您要跟踪的项目 (media_id's) 超过每小时限制,那么我建议将请求拆分为每小时批次。

例如。如果每小时速率限制为 5000 个请求,并且您需要跟踪 10000 个图像,
然后将您的媒体 ID 分成 2 批并
您将使用某些参数运行两个脚本或同一脚本两次。

Instagram 提供了一些关于速率限制配额的信息,
请参阅此处https://instagram.com/developer/limits/
有关全局速率限制的信息包含在对每个调用的响应的 HTTP 标头中,这使您的应用能够确定其与这些速率限制相关的当前状态。 em>

这完全取决于您需要跟踪多少项目,
但您所能做的就是解决每个访问令牌每小时 5000 个请求的速率限制。

您仍然会为每个媒体 ID 发送一个请求。

【讨论】:

  • 你有示例如何使用批处理请求吗?
猜你喜欢
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 2017-06-27
  • 2013-12-24
  • 1970-01-01
  • 2019-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多