function getTweets($username = false, $count = 20, $options = false) { $config['key'] = get_option('tdf_consumer_key'); $config['secret'] = get_option('tdf_consumer_secret'); $config['token'] = get_option('tdf_access_token'); $config['token_secret'] = get_option('tdf_access_token_secret'); $config['screenname'] = get_option('tdf_user_timeline'); $config['cache_expire'] = intval(get_option('tdf_cache_expire')); if ($config['cache_expire'] < 1) { $config['cache_expire'] = 3600; } $config['directory'] = plugin_dir_path(__FILE__); $obj = new StormTwitter($config); $res = $obj->getTweets($username, $count, $options); update_option('tdf_last_error', $obj->st_last_error); return $res; }
<?php /* ----------------------------------------------------------------------------- Load Storm Twitter class https://github.com/stormuk/storm-twitter ----------------------------------------------------------------------------- */ include 'storm-twitter.class.php'; /* ----------------------------------------------------------------------------- Initialize the Twitter app ----------------------------------------------------------------------------- */ $config = array('directory' => '', 'key' => esc_attr(lsvr_get_field('twitter_consumer_key')), 'secret' => esc_attr(lsvr_get_field('twitter_consumer_secret')), 'token' => esc_attr(lsvr_get_field('twitter_access_token')), 'token_secret' => esc_attr(lsvr_get_field('twitter_access_token_secret')), 'cache_expire' => 3600); global $lsvr_twitter_app; $lsvr_twitter_app = new StormTwitter($config); /* ----------------------------------------------------------------------------- RESPONSE ----------------------------------------------------------------------------- */ $username = esc_attr(lsvr_get_field('twitter_feed_username', '')); $limit = (int) esc_attr(lsvr_get_field('twitter_feed_count')); if ($username !== '' && $limit > 0) { global $lsvr_twitter_app; $tweets = $lsvr_twitter_app->getTweets($limit, $username); echo json_encode($tweets); }
<?php require_once 'StormTwitter.class.php'; // Define all the variables! \(:D)/ $temp_path = WP_CONTENT_DIR . '/themes/campaign-theme/functions/social-feed-functions/twitter-oauth/cache/'; $temp_key = get_theme_mod('airgame_twitter_consumer_key'); $temp_secret = get_theme_mod('airgame_twitter_consumer_secret'); $temp_token = get_theme_mod('airgame_twitter_access_token'); $temp_token_secret = get_theme_mod('airgame_twitter_access_token_secret'); $temp_username = get_theme_mod('airgame_twitter_username'); $config = array('directory' => $temp_path, 'key' => $temp_key, 'secret' => $temp_secret, 'token' => $temp_token, 'token_secret' => $temp_token_secret, 'screenname' => '', 'cache_expire' => 3600); $twitter = new StormTwitter($config); // getTweets is the only public method. For legacy reasons, it takes between 0 and 3 parameters. // getTweets(twitter_screenname, number_of_tweets, custom_parameters_to_go_twitter); $tweets = $twitter->getTweets($temp_username, 4, array('include_rts' => true, 'exclude_replies' => true));
/** * Shortcode callback function. * * @return string */ protected function do_shortcode() { $error_message = $this->test_dependencies(); if (!empty($error_message)) { return $error_message; } extract($this->extract()); // Sanitize arguments $username = preg_replace('/[^0-9a-zA-Z_-]/', '', $username); $max = absint($max); $cache_duration = abs(g1_get_theme_option('twitter', 'cache_duration', '')); if (strlen($cache_duration) === 0) { $cache_duration = 3600; } else { $cache_duration = abs($cache_duration); } $autoplay = g1_get_theme_option('twitter', 'autoplay') === 'standard'; $include_rts = g1_get_theme_option('twitter', 'retweets') === 'standard'; $oauth_enabled = (bool) g1_get_theme_option('twitter', 'oauth_enabled', true); // build oAuth config $config['key'] = g1_get_theme_option('twitter', 'consumer_key', ''); $config['secret'] = g1_get_theme_option('twitter', 'consumer_secret', ''); $config['token'] = g1_get_theme_option('twitter', 'access_token', ''); $config['token_secret'] = g1_get_theme_option('twitter', 'access_token_secret', ''); $config['screenname'] = $username; $config['cache_expire'] = 0; $wp_upload_dir = wp_upload_dir(); $config['directory'] = trailingslashit($wp_upload_dir['basedir']); $oauth_configured = !empty($config['key']) && !empty($config['secret']) && !empty($config['token']) && !empty($config['token_secret']); $use_oauth = $oauth_enabled && $oauth_configured; // Compose the transient name if ($use_oauth) { $transient = 'g1_twitter_oauth_' . $config['screenname'] . '_' . $max; } else { $transient = 'g1_twitter_' . $username . '_' . $max; } $out = ''; $tweets = $cache_duration > 0 ? get_transient($transient) : false; if (false === $tweets) { // fetch tweets if ($use_oauth) { require_once 'StormTwitter.class.php'; $obj = new StormTwitter($config); $res = $obj->getTweets($max); if (empty($res)) { return $out; } $tweets = $res; } else { // Compose the resource URL $resource = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $max; if ($include_rts) { $resource .= '&include_rts=1'; } $result = wp_remote_get($resource); if (is_wp_error($result)) { return $out; } $json = $result['body']; // Convert JSON String to PHP Array $tweets = json_decode($json); } // Set transient if ($cache_duration > 0) { set_transient($transient, $tweets, $cache_duration); } } $secondsOffset = 0; $timezoneOffset = get_option('gmt_offset'); if (is_numeric($timezoneOffset)) { $secondsOffset = $timezoneOffset * 3600; } // Compose output foreach ((array) $tweets as $tweet) { if (is_array($tweet)) { $tweet = (object) $tweet; } if (empty($tweet->text)) { continue; } $_out = "\t\t" . '<li>' . "\n" . "\t\t\t" . '<div class="g1-twitter__item">' . "\n" . "\t\t\t\t" . '<p class="g1-tweet-text">%tweet_text%</p>' . "\n" . "\t\t\t\t" . '<p class="g1-meta"><a href="%tweet_href%" rel="bookmark">%tweet_time%, %tweet_date%</a></p>' . "\n" . "\t\t\t" . '</div>' . "\n" . "\t\t" . '</li>' . "\n"; $_out = str_replace(array('%tweet_text%', '%tweet_href%', '%tweet_time%', '%tweet_date%'), array($this->twitter_linkify($tweet->text), esc_url('http://twitter.com/' . $username . '/status/' . $tweet->id_str), date(get_option('time_format'), strtotime($tweet->created_at) + $secondsOffset), date(get_option('date_format'), strtotime($tweet->created_at) + $secondsOffset)), $_out); $out .= $_out; } $classes = array('g1-twitter', 'g1-twitter--' . $type, $use_oauth ? 'g1-auth-oauth' : 'g1-auth-simple', $autoplay ? 'g1-autoplay-on' : 'g1-autoplay-off'); $classes = array_merge($classes, explode(' ', $class)); $out = '<div class="' . sanitize_html_classes($classes) . '">' . "\n" . "\t" . '<ul class="g1-twitter__items">' . "\n" . $out . "\t" . '</ul>' . "\n" . "\t" . '<p class="g1-twitter__follow"><a href="' . esc_url('http://twitter.com/' . $username) . '">' . sprintf(__('Follow @%s', 'g1_theme'), esc_html($username)) . '</a>' . '</p>' . "\n" . '</div>'; return $out; }