【问题标题】:Twitter API Caching?Twitter API 缓存?
【发布时间】:2012-10-15 02:29:49
【问题描述】:

我有一些 PHP 代码可以从其 API 中检索 Twitter JSON 数据。 我正在抓取一些东西,比如用户图片、屏幕名称、不。追随者和没有。推文。

以后可能还会为其他配置文件提供更多数据!

这是 PHP 代码:

<?php
            $data = json_decode(file_get_contents('https://api.twitter.com/1/users/show.json?callback=?&screen_name=guardian'), true);
            $data[0]['profile_image_url'];
            ?>

<?php
            $data = json_decode(file_get_contents('https://api.twitter.com/1/users/show.json?callback=?&screen_name=guardian'), true);
            echo $data[0]['screen_name'];
            ?>

<?php
            $data = json_decode(file_get_contents('https://api.twitter.com/1/users/show.json?callback=?&screen_name=guardian'), true);
            echo $data[0]['followers_count'];
            ?>

<?php
            $data = json_decode(file_get_contents('https://api.twitter.com/1/users/show.json?callback=?&screen_name=guardian'), true);
            echo $data[0]['statuses_count'];
            ?>

一切都运行良好,然后就不行了。我假设这是由于速率限制/我没有缓存的事实。

我对这一切都很陌生,所以我将如何为其设置缓存并让它每隔几个小时左右请求一次最新数据/基本上确保它不会塞满并且什么也不显示>.

非常感谢任何帮助!

【问题讨论】:

  • 你为什么一遍又一遍地获取相同的 url 只是为了使用不同的数据字段?
  • 不知道。我对php一无所知!帮助
  • 使用现有的 Twitter 客户端库。其中一些可能会处理缓存响应、身份验证等。dev.twitter.com/docs/twitter-libraries 可能会对您有所帮助。

标签: php json api caching twitter


【解决方案1】:

可能是因为速率限制。

Twitter 对未经身份验证的调用(对未使用 OAuth 进行身份验证的 API 进行的调用)实施速率限制。

“未经身份验证的呼叫每小时允许 150 个请求。未经身份验证的呼叫是根据发出请求的服务器或设备的面向公众的 IP 来衡量的。”

如果您使用共享主机,则您更有可能受到速率限制,因为在主机上使用相同 IP 的其他人也可能会查询 Twitter API(因此,计入该 IP 的每小时限制)。

您可以在Twitter's Rate Limiting restrictions websiteRate Limiting FAQ website 上阅读有关这些限制的更多信息。

【讨论】:

    【解决方案2】:

    不是$data[0]['profile_image_url']

    只需输入$data['profile_image_url']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2010-10-18
      • 2016-06-25
      • 2012-09-29
      • 1970-01-01
      • 2017-04-06
      相关资源
      最近更新 更多