すべて、Twitter のステータスを取得してユーザーに表示する次のコードがあります。
if( ! $tweet ) {
//$format = 'json';
//$contents = file_get_contents( "http://api.twitter.com/1/statuses/user_timeline/{$username}.{$format}", 0, $context );
//$contents = file_get_contents(" https://api.twitter.com/1/statuses/user_timeline.json?screen_name={$username}&count={$how_many}", 0, $context );
$url = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name={$username}&count={$how_many}";
$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $url );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
$contents = curl_exec( $curl );
curl_close( $curl );
if ( ! empty( $contents ) ) {
// Decode it.
$tweet = json_decode( $contents );
// Cache it for next time.
//set_transient( $id.'-'.$username, $tweet, 60*60*3 ); // 3 hour cache
}
}
// Check to make sure we have a tweet and display it.
if ( is_array($tweet) && isset($tweet[0]->id_str)) {
do_action( 'themeblvd_twitter_slider', $tweet, $options, $username, $slider_id );
} else {
$output = '<span class="tweet-icon '.$options['icon'].'"></span>';
$output .= 'We experienced an error with Twitter! Please check back soon for our reviews!';
}
return $output;
したがって、基本的には、いくつかのツイートを既にフェッチしているかどうかを判断しようとしています。そうでない場合は、それらをフェッチしてから、下のループに戻してユーザーに表示します。
<?php
foreach($tweet as $t){
?>
<li class="slide tight <?php echo $classes; ?>">
<div class="slide-body">
<div class="grid-protection">
<?php
echo '<span class="tweet-icon '.$options['icon'].'"></span>';
echo '<a href="http://twitter.com/'.$username.'/status/'.$t->id_str.'" target="_blank">';
echo $t->text;
echo '</a>';
?>
</div><!-- .grid-protection (end) -->
</div><!-- .slide-body (end) -->
</li>
<?php
}
?>
何らかの理由で、表示できないというエラー メッセージが表示されます。制限を 10 程度に保つと、エラーなしでかなり一貫して表示されます。制限を 50 または 85 のように増やすと、Twitter に問題があるというエラー メッセージが表示されます。API は最近変更されましたか? 新しい制限はありますか?85 個のツイートを表示できない理由について何か考えはありますか?
よろしくお願いします!