私はさまざまな Twitter フィードのさまざまな部分を使用してツイートを取得してきましたが、今ではレート制限とツイートのキャッシュで壁にぶつかっています。これが私のコードです:
function tweets($twitter_handle, $tweet_limit, $tweet_links, $tweet_tags, $tweet_avatar, $tweet_profile) {
/* Store Tweets in a JSON object */
$tweet_feed = json_decode(file_get_contents('http://api.twitter.com/1/statuses/user_timeline.json?screen_name='.
$twitter_handle.'&include_entities=true&include_rts=true&count='.$hard_max.''));
レート制限に達するまで、これはうまく機能します。ツイートをキャッシュするために追加したものは次のとおりです。
function tweets($twitter_handle, $tweet_limit, $tweet_links, $tweet_tags, $tweet_avatar, $tweet_profile) {
$url = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name='.$twitter_handle.'&include_entities=true&include_rts=true&count='.$hard_max.'';
$cache = dirname(__FILE__) . '/cache/twitter';
if(filemtime($cache) < (time() - 60))
{
mkdir(dirname(__FILE__) . '/cache', 0777);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
$data = curl_exec($ch);
curl_close($ch);
$cachefile = fopen($cache, 'wb');
fwrite($cachefile, $data);
fclose($cachefile);
}
else
{
$data = file_get_contents($cache);
}
$tweet_feed = json_decode($data);
ただし、これはユーザー名とタイムスタンプのみを返します (これは間違っています)。Twitter のアバター、ツイートの内容、正しいタイムスタンプなどを返す必要があります。さらに、数回更新するたびにエラーを返します。
警告: mkdir() [function.mkdir]: ファイルは /home/content/36/8614836/html/wp-content/themes/NCmainSite/functions.php の 110 行目に存在します
Any help would be appreciated.
If you need more info, here's the rest of the function: http://snippi.com/s/9f066q0