2012-10-14 74 views
0

我有一些PHP代碼從它的API中檢索Twitter JSON數據。 我抓住了一些像userpic,屏幕名稱,沒有。追隨者&沒有。的推文。Twitter API緩存?

對於其他配置文件,以後可能還會有更多數據!

這裏是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']; 
      ?> 

這是所有運作良好,然後它不是了。我假設這是由於速率限制/我沒有爲它緩存的事實。

我對這一切都很陌生,所以我將如何設置緩存並讓它每隔幾個小時左右請求最新數據/基本上確保它不會塞滿& show nothing>。 <

非常感謝所有幫助!

+0

爲什麼你在獲取相同的URL一遍又一遍只是使用不同的數據字段? –

+0

不知道。我在php無能爲力!幫助 – nowthatsmint

+0

使用現有的Twitter客戶端庫。其中一些可能會處理緩存響應,身份驗證等。https://dev.twitter.com/docs/twitter-libraries可能會幫助你。 –

回答

0

這可能是因爲速率限制。

Twitter的強制速率限制未經驗證的電話(以尚未使用OAuth認證的API的調用)。

「未經驗證的呼叫允許每小時發送150個請求。未經驗證的呼叫是根據發出請求的服務器或設備的公開IP來衡量的。

如果您使用的是共享主機,由於其他人在主機上使用相同的IP也可能會查詢Twitter API,因此您更有可能限制速度(因此,計算每小時限制爲那個IP)。

您可以在Twitter's Rate Limiting restrictions website以及Rate Limiting FAQ website上詳細瞭解這些限制。

+0

總是有意義的。將查看OAuth!乾杯 – nowthatsmint

0

$data[0]['profile_image_url']

只要把$data['profile_image_url']