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;
}
Esempio n. 2
0
<?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));
Esempio n. 4
0
 /**
  * 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;
 }