public function __construct($arr) { $this->services = $arr; if (trim($arr['twitterName'])) { $connection = getConnectionWithAccessToken($arr['consumer_key'], $arr['consumer_secret'], $arr['access_token'], $arr['access_token_secret']); $tweets = $connection->get('https://api.twitter.com/1.1/users/show.json?screen_name=' . $arr['twitterName']) or die('Couldn\'t retrieve tweets! Wrong username?'); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } $new_twitter = $tweets->followers_count; if (empty($new_twitter) || $new_twitter == 0 || $new_twitter == '0') { $this->twitter = $arr['twitter']; } else { $this->twitter = $new_twitter; } } if (trim($arr['facebookFanPageURL'])) { $query = wp_remote_get('https://api.facebook.com/method/links.getStats?urls=' . urlencode(trim($arr['facebookFanPageURL'])) . '&format=json'); if (is_wp_error($query)) { print_r($query); } $result = json_decode($query['body'], true); if (empty($result[0]['like_count']) || $result[0]['like_count'] == 0 || $result[0]['like_count'] == '0') { $this->facebook = $arr['facebook']; } else { $this->facebook = $result[0]['like_count']; } } }
function etheme_capture_tweets($consumer_key, $consumer_secret, $user_token, $user_secret, $user, $count) { $connection = getConnectionWithAccessToken($consumer_key, $consumer_secret, $user_token, $user_secret); $params = array('screen_name' => $user, 'count' => $count); $content = $connection->get("statuses/user_timeline", $params); //prar($content); return json_encode($content); }
function widget($args, $instance) { extract($args); $title = apply_filters('widget_title', $instance['title']); $twitter_username = $instance['twitter_username']; $show_num = $instance['show_num']; $consumer_key = $instance['consumer_key']; $consumer_secret = $instance['consumer_secret']; $access_token = $instance['access_token']; $access_token_secret = $instance['access_token_secret']; $cache_time = $instance['cache_time']; // Opening of widget echo $before_widget; // Open of title tag if ($title) { echo $before_title . $title . $after_title; } $last_cache_time = get_option('gdl_twitter_widget_last_cache_time', 0); $diff = time() - $last_cache_time; $crt = $cache_time * 3600; if (empty($last_cache_time) || $diff >= $crt) { $connection = getConnectionWithAccessToken($consumer_key, $consumer_secret, $access_token, $access_token_secret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitter_username . "&count=" . $show_num) or die('Couldn\'t retrieve tweets! Wrong username?'); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } $tweets_data = array(); for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_data[$i]['created_at'] = $tweets[$i]->created_at; $tweets_data[$i]['text'] = $tweets[$i]->text; $tweets_data[$i]['status_id'] = $tweets[$i]->id_str; } } update_option('gdl_twitter_widget_tweets', serialize($tweets_data)); update_option('gdl_twitter_widget_last_cache_time', time()); } else { $tweets_data = maybe_unserialize(get_option('gdl_twitter_widget_tweets')); } echo '<div class="twitter-whole">'; echo '<ul id="twitter_update_list">'; foreach ($tweets_data as $each_tweet) { echo '<li>'; echo '<span>' . convert_links($each_tweet['text']) . '</span>'; echo '<a target="_blank" href="http://twitter.com/' . $twitter_username . '/statuses/' . $each_tweet['status_id'] . '">' . relative_time($each_tweet['created_at']) . '</a>'; echo '</li>'; } echo '</ul>'; echo '</div>'; // Closing of widget echo $after_widget; }
function tweet($update) { global $config; $connection = getConnectionWithAccessToken($config['twitter_oauth_token'], $config['twitter_oauth_token_secret']); $parameters = array('status' => $update); $status = $connection->post('statuses/update', $parameters); // Don't uncomment this as it will break "Update" button in OpenURL results //print_r($status); }
function get($count = 20) { $username = $this->username; // Append the count $url = $this->feedUrl; $url .= '&count=' . $count; $tweets_cache_path = get_template_directory() . '/cache/twitter_' . $username . '_' . $count . '.cache'; if (file_exists($tweets_cache_path)) { $tweets_cache_timer = intval((time() - filemtime($tweets_cache_path)) / 60); } else { $tweets_cache_timer = 0; } if (!file_exists($tweets_cache_path) or $tweets_cache_timer > 15) { $connection = getConnectionWithAccessToken($this->consumer_key, $this->consumer_secret, $this->access_token, $this->access_token_secret); $tweets = $connection->get($url); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } $tweets_data = array(); foreach ($tweets as $tweet) { $tweets_data[]['text'] = $tweet->text; } if (file_exists($tweets_cache_path)) { unlink($tweets_cache_path); } $myFile = $tweets_cache_path; $fh = fopen($myFile, 'w') or die("can't open file"); $stringData = serialize($tweets_data); fwrite($fh, $stringData); fclose($fh); //clear data $tweets_data = array(); } error_reporting(0); $file = file_get_contents($tweets_cache_path, true); if (!empty($file)) { $tweets = unserialize($file); // Some reformatting $pattern = array('/[^(:\\/\\/)](www\\.[^ \\n\\r]+)/', '/(https?:\\/\\/[^ \\n\\r]+)/'); $replace = array('<a href="http://$1" rel="nofollow">$1</a>', '<a href="$1" rel="nofollow">$1</a>'); foreach ($tweets as $tweet) { $formatted_tweet = preg_replace($pattern, $replace, $tweet['text']); $formatted_tweet = auto_link_twitter($formatted_tweet); $tweets_data[]['text'] = $formatted_tweet; } } return $tweets_data; }
public function __construct($lng, $lat) { require_once $_SERVER['DOCUMENT_ROOT'] . "/twitteroauth-master/connect.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/twitteroauth-master/twitteroauth/twitteroauth.php"; function getConnectionWithAccessToken($oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken("53207076-VqragtGcaPWoldCNrfbnwwWG4dUnP0BbeKcW4xt8m", "OdeBMzodirvxoDrgkKJxNvkEBeB87TUCkamvMpqyULsgq"); $content = $connection->get("https://api.twitter.com/1.1/geo/search.json?accuracy=3000&lat=38.6480&long=-90.3050"); $place_id = $content->result->places[0]->id; $base_url = "https://twitter.com/search?q=place%3A" . $place_id; echo $base_url; }
function getTweets($twitteruser) { $notweets = 6; $consumerkey = "91VWoS0052BKjczqL9LMNKumm"; $consumersecret = "YPrff3DTDtUw0i3iSRlGQGaGEEG2kW6CqwBFA5PV0Hfs62NDY7"; $accesstoken = "27766009-jWBg4UotrwxP4f3WWYuwHFlwZeg6fJrrKmXOu52CF"; $accesstokensecret = "1bAeS1A2wBzkqkPbQZOxViqDb2sOPblPe9IugMz9YsMnI"; function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitteruser . "&count=" . $notweets); return $tweets; }
function get($count = 20) { $username = $this->username; // Append the count $url = $this->feedUrl; $url .= '&count=' . $count; $tweets_cache_path = THEMEUPLOAD . '/twitter_' . $username . '_' . $count . '.cache'; if (file_exists($tweets_cache_path)) { $tweets_cache_timer = intval((time() - filemtime($tweets_cache_path)) / 60); } else { $tweets_cache_timer = 0; } if (!file_exists($tweets_cache_path) or $tweets_cache_timer > 15) { $connection = getConnectionWithAccessToken($this->consumer_key, $this->consumer_secret, $this->access_token, $this->access_token_secret); $tweets = $connection->get($url); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!'; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>'; } return; } $tweets_data = array(); foreach ($tweets as $tweet) { $tweet_text = auto_link_twitter($tweet->text); $tweets_data[]['text'] = $tweet_text; } if (file_exists($tweets_cache_path)) { unlink($tweets_cache_path); } $myFile = $tweets_cache_path; $fh = fopen($myFile, 'w') or die("can't open file"); $stringData = serialize($tweets_data); fwrite($fh, $stringData); fclose($fh); } else { $file = file_get_contents($tweets_cache_path, true); if (!empty($file)) { $tweets = unserialize($file); foreach ($tweets as $tweet) { $tweets_data[]['text'] = $tweet['text']; } } } return $tweets_data; }
function twitter_parse_cache_feed($args = '') { /* Set up the default arguments for the twitter. */ $defaults = array('username' => '', 'limit' => '', 'encode_utf8' => 'false', 'twitter_cons_key' => '', 'twitter_cons_secret' => '', 'twitter_oauth_token' => '', 'twitter_oauth_secret' => ''); $args = apply_filters('twitter_parse_cache_feed_args', $args); $args = wp_parse_args($args, $defaults); $out = ''; global $twitter_options; if (!(require_once FRAMEWORK_DIR . 'includes/twitteroauth.php')) { $out .= '<strong>Couldn\'t find twitteroauth.php!</strong>'; return; } $connection = getConnectionWithAccessToken($args['twitter_cons_key'], $args['twitter_cons_secret'], $args['twitter_oauth_token'], $args['twitter_oauth_secret']); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $args['username'] . "&count=" . $args['limit'] . "") or die('Couldn\'t retrieve tweets! Wrong username?'); //print_r($tweets); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { $out .= '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { $out .= '<strong>' . $tweets->errors[0]->message . '</strong>'; } return; } $out .= '<ul class="tweet">'; for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $out .= '<li><i class="icon-twitter"></i>'; $msg = " " . $tweets[$i]->text . " "; if ($args['encode_utf8']) { $msg = utf8_encode($msg); } //$link = $message->get_link(); $time = $tweets[$i]->created_at; $msg = hyperlinks($msg); $msg = twitter_users($msg); $out .= $msg; $out .= '<span> - ' . relativeTime($time) . '</span>'; $out .= '</li>'; } } $out .= '</ul>'; echo $out; }
function get_recent_tweet_by_username($username = null) { if ($username) { $twitteruser = $username; $number = 1; $consumerkey = get_field('sdo_api_twitter_app_consumer_key', 'options'); $consumersecret = get_field('sdo_api_twitter_app_consumer_secret', 'options'); $accesstoken = get_field('sdo_api_twitter_app_access_token', 'options'); $accesstokensecret = get_field('sdo_api_twitter_app_access_token_secret', 'options'); function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweet = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitteruser . "&count=" . $number . "&exclude_replies=true&include_rts=false&contributor_details=true&include_entities=true"); return $tweet[0]; } }
function get_tweets() { // The $_REQUEST contains all the data sent via ajax if (isset($_REQUEST)) { /*// get Vancouver weather from Environment Canada $xml=simplexml_load_file("https://weather.gc.ca/rss/city/bc-74_e.xml") or $xml = null; $weather = ""; if ($xml) { $weather = $xml->entry[1]->title; $weather = substr($weather, 20); // removes "Current Conditions: " from beginning. $date = $xml->entry[1]->updated; $date = new DateTime($date); $date = $date->format('d/m/y'); $weather = $date." | ".$weather; } echo ($weather);*/ require_once "twitteroauth-master/twitteroauth/twitteroauth.php"; //Path to twitteroauth library $twitteruser = "******"; $notweets = 2; $consumerkey = "PlxuNdfmNQg1rt9pnF0L8K1kU"; $consumersecret = "Wkulo79SOsEmlQvqmSCDaiDbO8ywRa0JIvvoBMFdaYPL2d5gH6"; $accesstoken = "14864996-Ya9fNZarCjMYNyK6HPluj0Mothx3LpioeOdJYCEM5"; $accesstokensecret = "lqGV9eWg3X6mEWDSnuz4no83cGMXtIZYV6QSNd2jprC0f"; function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitteruser . "&count=" . $notweets); echo json_encode($tweets); } // Always die in functions echoing ajax content die; }
function twitter_get_tweets($twitteruser) { $cache = get_transient('revoke_twitter'); if (is_array($cache) && array_key_exists($twitteruser, $cache)) { return $cache[$twitteruser]; } $consumerkey = _go('twitter_consumerkey'); $consumersecret = _go('twitter_consumersecret'); $accesstoken = _go('twitter_accesstoken'); $accesstokensecret = _go('twitter_accesstokensecret'); if (empty($consumerkey) || empty($consumersecret) || empty($accesstoken) || empty($accesstokensecret)) { return null; } $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitteruser); if (!is_array($cache)) { $cache = array(); } $cache[$twitteruser] = $tweets; set_transient('revoke_twitter', $cache, 60); return $tweets; }
function chronos_twitter_feed($count = '1', $list = false) { global $user, $consumerkey, $consumersecret, $accesstoken, $accesstokensecret; $output = ''; $i = 1; $twitteruser = $user; $notweets = $count; $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitteruser . "&count=" . $notweets); $data = json_decode(json_encode($tweets)); if (is_array($data)) { while ($i <= $count) { if (isset($data[$i - 1])) { $feed = $data[$i - 1]->text; $feed = str_pad($feed, 3, ' ', STR_PAD_LEFT); $startat = stripos($feed, '@'); $numat = substr_count($feed, '@'); $numhash = substr_count($feed, '#'); $numhttp = substr_count($feed, 'http'); $feed = preg_replace("#(^|[\n ])([\\w]+?://[\\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $feed); $feed = preg_replace("#(^|[\n ])((www|ftp)\\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $feed); $feed = preg_replace("/@(\\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $feed); $feed = preg_replace("/#(\\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $feed); if (!$list) { $output .= sprintf('<div class="">%2$s</div><div class="">%1$s</div>', $feed, chronos_time_ago(strtotime($data[$i - 1]->created_at))); } else { $output .= sprintf('<div class="single_row margin-bottom24"><i class="fa fa-twitter icon_element"></i><div class="text border-box">%1$s</div><div class="clearfix"></div></div><!-- single_row -->', $feed); } if ($i !== $count && $list) { $output .= '<div class="small_separator background-color-passive margin-bottom24"></div>'; } } $i++; } return $output; } else { return 'Twitter unaviable'; } }
function get_theme_tweets($username, $consumerkey, $consumerkeysecret, $accesstoken, $accesstokensecret, $notweets) { //check settings and die if not set if (empty($username) || empty($consumerkey) || empty($consumerkeysecret) || empty($accesstoken) || empty($accesstokensecret)) { echo '<strong>Please fill all Twitter settings!</strong>'; return; } // yes, it needs update if (!(require_once 'twitter_oauth.php')) { echo '<strong>Couldn\'t find twitter_oauth.php!</strong>'; return; } if (!function_exists('getConnectionWithAccessToken')) { function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } } $connection = getConnectionWithAccessToken($consumerkey, $consumerkeysecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $username . "&count=5") or die('Couldn\'t retrieve tweets! Wrong username?'); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You will need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_array[$i]['created_at'] = $tweets[$i]->created_at; $tweets_array[$i]['text'] = $tweets[$i]->text; $tweets_array[$i]['status_id'] = $tweets[$i]->id_str; } } set_transient('twitter-bar-tweets', $tweets_array, 0); //convert links to clickable format function convert_links($status, $targetBlank = true, $linkMaxLen = 250) { // the target $target = $targetBlank ? " target=\"_blank\" " : ""; // convert link to url $status = preg_replace("/((http:\\/\\/|https:\\/\\/)[^ )\n]+)/e", "'<a href=\"\$1\" title=\"\$1\" {$target} >'. ((strlen('\$1')>={$linkMaxLen} ? substr('\$1',0,{$linkMaxLen}).'...':'\$1')).'</a>'", $status); // convert @ to follow $status = preg_replace("/(@([_a-z0-9\\-]+))/i", "<a href=\"http://twitter.com/\$2\" title=\"Follow \$2\" {$target} >\$1</a>", $status); // convert # to search $status = preg_replace("/(#([_a-z0-9\\-]+))/i", "<a href=\"https://twitter.com/search?q=\$2\" title=\"Search \$1\" {$target} >\$1</a>", $status); // return the status return $status; } //convert dates to readable format function relative_time($a) { //get current timestampt $b = strtotime("now"); //get timestamp when tweet created $c = strtotime($a); //get difference $d = $b - $c; //calculate different time values $minute = 60; $hour = $minute * 60; $day = $hour * 24; $week = $day * 7; if (is_numeric($d) && $d > 0) { //if less then 3 seconds if ($d < 3) { return "right now"; } //if less then minute if ($d < $minute) { return floor($d) . " seconds ago"; } //if less then 2 minutes if ($d < $minute * 2) { return "about 1 minute ago"; } //if less then hour if ($d < $hour) { return floor($d / $minute) . " minutes ago"; } //if less then 2 hours if ($d < $hour * 2) { return "about 1 hour ago"; } //if less then day if ($d < $day) { return floor($d / $hour) . " hours ago"; } //if more then day, but less then 2 days if ($d > $day && $d < $day * 2) { return "yesterday"; } //if less then year if ($d < $day * 365) { return floor($d / $day) . " days ago"; } //else return more than a year return "over a year ago"; } } //print tweets $tp_twitter_plugin_tweets = maybe_unserialize(get_transient('twitter-bar-tweets')); if (!empty($tp_twitter_plugin_tweets)) { $fctr = '1'; foreach ($tp_twitter_plugin_tweets as $tweet) { print '<li><span>' . convert_links($tweet['text']) . '</span><a class="created radius label blue" target="_blank" href="http://twitter.com/' . $username . '/statuses/' . $tweet['status_id'] . '">' . relative_time($tweet['created_at']) . '</a></li>'; if ($fctr == $notweets) { break; } $fctr++; } } }
</p> </div> <br class="visiblephone"> <div class="span9"> <div class="well" style=" box-shadow:none !important; margin-bottom:0px; background:#303030; border:0px; border-radius:0px !important"> <?php if (!(require_once 'inc/twitteroauth.php')) { echo '<strong>Couldn\'t find twitteroauth.php!</strong>'; return; } function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($b_data['TW_CONSUMER_KEY'], $b_data['TW_CONSUMER_SECRET'], $b_data['TW_OAUTH_TOKEN'], $b_data['TW_OAUTH_SECRET']); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $b_data['TW_USERNAME'] . "&count=" . $b_data['TW_NUMBER']); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!'; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>'; } } if (is_array($tweets)) { for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_array[$i]['created_at'] = $tweets[$i]->created_at; $tweets_array[$i]['text'] = $tweets[$i]->text; $tweets_array[$i]['status_id'] = $tweets[$i]->id_str; }
function display_latest_tweets($twitter_user_id, $cache_file = './tweets.txt', $tweets_to_display = 5, $ignore_replies = false, $include_rts = false, $twitter_wrap_open = '<ul class="slides">', $twitter_wrap_close = '</ul>', $tweet_wrap_open = '<li>', $meta_wrap_open = '<p class="tweet-meta">', $time_open = '<span class="tweet-time">', $time_close = '</span>', $meta_wrap_close = '</p><p class="tweet-text">', $tweet_wrap_close = '</p></li>', $date_format = 'g:i A M jS', $twitter_style_dates = true) { // Twitter style days. [about an hour ago] (Default : true) // Twitter keys (You'll need to visit https://dev.twitter.com and register to get these. $consumerkey = "sNjEbKxd2hvm24OQKmsbNDHsd"; $consumersecret = "zYdQ3az6X9EDjfqJREhCCw0mVLnSqzZamL5tVlPscaS3mSOCOQ"; $accesstoken = "27026126-8tSI1JWQclqoSoynR9uUPL660ERcQcsZUwQ4HQOVc"; $accesstokensecret = "n5fO4JGUaQ5wN1owJeMlofEYExQGJ6V4Ylh9ZeravfTVM"; // Seconds to cache feed (Default : 1 minute). $cachetime = 60 * 3; // Time that the cache was last updtaed. $cache_file_created = file_exists($cache_file) ? filemtime($cache_file) : 0; // A flag so we know if the feed was successfully parsed. $tweet_found = false; // Show cached version of tweets, if it's less than $cachetime. if (time() - $cachetime < $cache_file_created) { $tweet_found = true; // Display tweets from the cache. readfile($cache_file); } else { // Cache file not found, or old. Authenticae app. $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); if ($connection) { // Get the latest tweets from Twitter $get_tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitter_user_id . "&count=" . $tweets_to_display . "&include_rts=" . $include_rts . "&exclude_replies=" . $ignore_replies); // Error check: Make sure there is at least one item. if (count($get_tweets)) { // Define tweet_count as zero $tweet_count = 0; // Start output buffering. ob_start(); // Open the twitter wrapping element. $twitter_html = $twitter_wrap_open; // Iterate over tweets. foreach ($get_tweets as $tweet) { $tweet_found = true; $tweet_count++; $tweet_desc = $tweet->text; // Add hyperlink html tags to any urls, twitter ids or hashtags in the tweet. $tweet_desc = preg_replace("/((http)+(s)?:\\/\\/[^<>\\s]+)/i", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $tweet_desc); $tweet_desc = preg_replace("/[@]+([A-Za-z0-9-_]+)/", "<a href=\"http://twitter.com/\\1\" target=\"_blank\">\\0</a>", $tweet_desc); $tweet_desc = preg_replace("/[#]+([A-Za-z0-9-_]+)/", "<a href=\"http://twitter.com/search?q=%23\\1\" target=\"_blank\">\\0</a>", $tweet_desc); // Convert Tweet display time to a UNIX timestamp. Twitter timestamps are in UTC/GMT time. $tweet_time = strtotime($tweet->created_at); if ($twitter_style_dates) { // Current UNIX timestamp. $current_time = time(); $time_diff = abs($current_time - $tweet_time); switch ($time_diff) { case $time_diff < 60: $display_time = $time_diff . ' seconds ago'; break; case $time_diff >= 60 && $time_diff < 3600: $min = floor($time_diff / 60); $display_time = $min . ' minutes ago'; break; case $time_diff >= 3600 && $time_diff < 86400: $hour = floor($time_diff / 3600); $display_time = $hour . ' hr'; if ($hour > 1) { $display_time .= 's'; } $display_time .= ' ago'; break; default: $display_time = date($date_format, $tweet_time); break; } } else { $display_time = date($date_format, $tweet_time); } // Render the tweet. // $twitter_html .= $tweet_wrap_open.$meta_wrap_open.'<a href="http://twitter.com/'.$twitter_user_id.'">@'.$display_time.'</a>'.html_entity_decode($tweet_desc).$meta_wrap_close.$tweet_wrap_close; $twitter_html .= $tweet_wrap_open . $meta_wrap_open . '<a href="https://www.twitter.com/' . $twitter_user_id . '" target="blank">@' . $twitter_user_id . '</a>' . $time_open . $display_time . $time_close . $meta_wrap_close . html_entity_decode($tweet_desc) . $tweet_wrap_close; // If we have processed enough tweets, stop. if ($tweet_count >= $tweets_to_display) { break; } } // Close the twitter wrapping element. $twitter_html .= $twitter_wrap_close; echo $twitter_html; // Generate a new cache file. $file = fopen($cache_file, 'w'); // Save the contents of output buffer to the file, and flush the buffer. fwrite($file, ob_get_contents()); fclose($file); ob_end_flush(); } } } }
<?php require_once 'config.inc.php'; require_once 'lib.php'; date_default_timezone_set('UTC'); // OAuth require_once 'twitteroauth/twitteroauth.php'; function getConnectionWithAccessToken($oauth_token, $oauth_token_secret) { global $config; $connection = new TwitterOAuth($config['consumer_key'], $config['consumer_secret'], $oauth_token, $oauth_token_secret); return $connection; } if ($config['oauth']) { $connection = getConnectionWithAccessToken($config['oauth_token'], $config['oauth_token_secret']); } else { } $lastpublished = strtotime('10 September 2000'); $published = $lastpublished; echo $lastpublished . "\n"; $filename = dirname(__FILE__) . '/published.json'; if (file_exists($filename)) { $file = @fopen($filename, "a+") or die("could't open file --\"{$filename}\""); $json = fread($file, filesize($filename)); fclose($file); $lastpublished = json_decode($json); $published = $lastpublished; } echo "Last published={$lastpublished}\n"; echo "Published={$published}\n"; // Fetch feed
<?php session_start(); require_once "twitteroauth/twitteroauth.php"; //Path to twitteroauth library $twitteruser = "******"; $notweets = 30; $consumerkey = "enter-consumerkey-here"; $consumersecret = "enter-consumersecret-here"; $accesstoken = "enter-accesstoken-here"; $accesstokensecret = "enter-accesstoken-here"; function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitteruser . "&count=" . $notweets); echo json_encode($tweets);
<?php $gdl_show_twitter = get_option(THEME_SHORT_NAME . '_show_twitter_bar', 'enable') == 'enable' ? true : false; $gdl_homepage_twitter = get_option(THEME_SHORT_NAME . '_show_twitter_only_homepage', 'disable') == 'enable' ? true : false; if ($gdl_show_twitter && ($gdl_homepage_twitter && is_front_page() || !$gdl_homepage_twitter)) { $twitter_id = get_option(THEME_SHORT_NAME . '_twitter_bar_id'); $num_fetch = get_option(THEME_SHORT_NAME . '_twitter_num_fetch'); $consumer_key = get_option(THEME_SHORT_NAME . '_twitter_bar_consumer_id'); $consumer_secret = get_option(THEME_SHORT_NAME . '_twitter_bar_consumer_secret'); $access_token = get_option(THEME_SHORT_NAME . '_twitter_bar_access_token'); $access_token_secret = get_option(THEME_SHORT_NAME . '_twitter_bar_access_token_secret'); $cache_time = get_option(THEME_SHORT_NAME . '_twitter_bar_cache_time', '1'); $last_cache_time = get_option(THEME_SHORT_NAME . '_twitter_bar_last_cache_time', 0); $diff = time() - $last_cache_time; $crt = $cache_time * 3600; if (empty($last_cache_time) || $diff >= $crt) { $connection = getConnectionWithAccessToken($consumer_key, $consumer_secret, $access_token, $access_token_secret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitter_id . "&count=" . $num_fetch) or die('Couldn\'t retrieve tweets! Wrong username?'); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } $tweets_data = array(); for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_data[$i]['created_at'] = $tweets[$i]->created_at; $tweets_data[$i]['text'] = $tweets[$i]->text; $tweets_data[$i]['status_id'] = $tweets[$i]->id_str;
// setup varibles $modules = get_option('reza_modules'); // user settings $user = $modules['tweets_username']; $count = 1; // key settings $apikey = $modules['tweets_api_key']; $apisecret = $modules['tweets_api_secret']; $accesstoken = $modules['tweets_access_token']; $accesstokensecret = $modules['tweets_access_token_secret']; function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($apikey, $apisecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $user . "&count=" . $count); /** * Find links and create the hyperlinks */ function links($tweets) { $tweets = preg_replace('/\\b([a-zA-Z]+:\\/\\/[\\w_.\\-]+\\.[a-zA-Z]{2,6}[\\/\\w\\-~.?=&%#+$*!]*)\\b/i', "<a href=\"\$1\" class=\"twitter-link\">\$1</a>", $tweets); $tweets = preg_replace('/\\b(?<!:\\/\\/)(www\\.[\\w_.\\-]+\\.[a-zA-Z]{2,6}[\\/\\w\\-~.?=&%#+$*!]*)\\b/i', "<a href=\"http://\$1\" class=\"twitter-link\">\$1</a>", $tweets); // match @username $tweets = preg_replace('/([\\.|\\,|\\:|\\¡|\\¿|\\>|\\{|\\(]?)@{1}(\\w*)([\\.|\\,|\\:|\\!|\\?|\\>|\\}|\\)]?)\\s/i', "\$1<a href=\"http://twitter.com/\$2\" class=\"twitter-user\">@\$2</a>\$3 ", $tweets); // match name@address $tweets = preg_replace("/\\b([a-zA-Z][a-zA-Z0-9\\_\\.\\-]*[a-zA-Z]*\\@[a-zA-Z][a-zA-Z0-9\\_\\.\\-]*[a-zA-Z]{2,6})\\b/i", "<a href=\"mailto://\$1\" class=\"twitter-link\">\$1</a>", $tweets); //match #trending $tweets = preg_replace('/([\\.|\\,|\\:|\\¡|\\¿|\\>|\\{|\\(]?)#{1}(\\w*)([\\.|\\,|\\:|\\!|\\?|\\>|\\}|\\)]?)\\s/i', "\$1<a href=\"http://twitter.com/#search?q=\$2\" class=\"twitter-link\">#\$2</a>\$3 ", $tweets); return $tweets;
public function widget($args, $instance) { extract($args); if (!empty($instance['title'])) { $title = apply_filters('widget_title', $instance['title']); } echo $before_widget; if (!empty($title)) { echo $before_title . $title . $after_title; } if (empty($instance['consumerkey']) || empty($instance['consumersecret']) || empty($instance['accesstoken']) || empty($instance['accesstokensecret']) || empty($instance['cachetime']) || empty($instance['username'])) { echo '<strong>Please fill all widget settings!</strong>' . $after_widget; return; } // Check cache time $tc_recent_tweets_cache_time = get_option('tc_recent_tweets_cache_time'); $diff = time() - $tc_recent_tweets_cache_time; $crt = $instance['cachetime'] * 3600; //require_once('twitteroauth.php'); if ($diff >= $crt || empty($tc_recent_tweets_cache_time)) { if (!(require_once 'twitteroauth.php')) { echo '<strong>Couldn\'t find twitteroauth.php!</strong>' . $after_widget; return; } function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($instance['consumerkey'], $instance['consumersecret'], $instance['accesstoken'], $instance['accesstokensecret']); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $instance['username'] . "&count=10") or die('Couldn\'t retrieve tweets! Wrong username?'); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_array[$i]['created_at'] = $tweets[$i]->created_at; $tweets_array[$i]['text'] = $tweets[$i]->text; $tweets_array[$i]['status_id'] = $tweets[$i]->id_str; } } //save tweets to wp option update_option('mts_twitter_plugin_tweets', serialize($tweets_array)); update_option('tc_recent_tweets_cache_time', time()); echo '<!-- twitter cache has been updated! -->'; } //convert links to clickable format function convert_links($status, $targetBlank = true, $linkMaxLen = 250) { $target = $targetBlank ? " target=\"_blank\" " : ""; // the target $status = preg_replace("/((http:\\/\\/|https:\\/\\/)[^ )]+)/e", "'<a href=\"\$1\" title=\"\$1\" {$target} >'. ((strlen('\$1')>={$linkMaxLen} ? substr('\$1',0,{$linkMaxLen}).'...':'\$1')).'</a>'", $status); // convert link to url $status = preg_replace("/(@([_a-z0-9\\-]+))/i", "<a href=\"http://twitter.com/\$2\" title=\"Follow \$2\" {$target} >\$1</a>", $status); // convert @ to follow $status = preg_replace("/(#([_a-z0-9\\-]+))/i", "<a href=\"https://twitter.com/search?q=\$2\" title=\"Search \$1\" {$target} >\$1</a>", $status); // convert # to search return $status; // return the status } //convert dates to readable format function relative_time($a) { $b = strtotime("now"); //get current timestampt $c = strtotime($a); //get timestamp when tweet created $d = $b - $c; //get difference $minute = 60; //calculate different time values $hour = $minute * 60; $day = $hour * 24; $week = $day * 7; if (is_numeric($d) && $d > 0) { if ($d < 3) { return "right now"; } //if less then 3 seconds if ($d < $minute) { return floor($d) . " seconds ago"; } //if less then minute if ($d < $minute * 2) { return "about 1 minute ago"; } //if less then 2 minutes if ($d < $hour) { return floor($d / $minute) . " minutes ago"; } //if less then hour if ($d < $hour * 2) { return "about 1 hour ago"; } //if less then 2 hours if ($d < $day) { return floor($d / $hour) . " hours ago"; } //if less then day if ($d > $day && $d < $day * 2) { return "yesterday"; } //if more then day, but less then 2 days if ($d < $day * 365) { return floor($d / $day) . " days ago"; } //if less then year return "over a year ago"; //else return more than a year } } $mts_twitter_plugin_tweets = maybe_unserialize(get_option('mts_twitter_plugin_tweets')); if (!empty($mts_twitter_plugin_tweets)) { print '<div class="tc-recent-tweets tweets"><ul>'; $fctr = '1'; foreach ($mts_twitter_plugin_tweets as $tweet) { print '<li><span>' . convert_links($tweet['text']) . '</span><br /><a class="twitter-time" target="_blank" href="http://twitter.com/' . $instance['username'] . '/statuses/' . $tweet['status_id'] . '">' . relative_time($tweet['created_at']) . '</a></li>'; if ($fctr == $instance['tweetstoshow']) { break; } $fctr++; } print '</ul></div>'; } echo $after_widget; }
public function widget($args, $instance) { extract($args); if (!empty($instance['title'])) { $title = apply_filters('widget_title', $instance['title']); } echo $before_widget; if (!empty($title)) { echo $before_title . $title . $after_title; } //check settings and die if not set if (empty($instance['consumerkey']) || empty($instance['consumersecret']) || empty($instance['accesstoken']) || empty($instance['accesstokensecret']) || empty($instance['cachetime']) || empty($instance['username'])) { echo '<strong>Please fill all widget settings!</strong>' . $after_widget; return; } //check if cache needs update $tp_twitter_plugin_last_cache_time = get_option('tp_twitter_plugin_last_cache_time'); $diff = time() - $tp_twitter_plugin_last_cache_time; $crt = $instance['cachetime'] * 3600; // yes, it needs update if ($diff >= $crt || empty($tp_twitter_plugin_last_cache_time)) { if (!class_exists('TwitterOAuth')) { if (!(require_once TEMPLATEPATH . '/widgets/twitter/twitteroauth.php')) { echo '<strong>Couldn\'t find twitteroauth.php!</strong>' . $after_widget; return; } } function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($instance['consumerkey'], $instance['consumersecret'], $instance['accesstoken'], $instance['accesstokensecret']); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $instance['username'] . "&count=10") or die('Couldn\'t retrieve tweets! Wrong username?'); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_array[$i]['created_at'] = $tweets[$i]->created_at; $tweets_array[$i]['text'] = $tweets[$i]->text; $tweets_array[$i]['status_id'] = $tweets[$i]->id_str; } } //save tweets to wp option update_option('tp_twitter_plugin_tweets', serialize($tweets_array)); update_option('tp_twitter_plugin_last_cache_time', time()); echo '<!-- twitter cache has been updated! -->'; } //convert links to clickable format function convert_links($status, $targetBlank = true, $linkMaxLen = 250) { // the target $target = $targetBlank ? " target=\"_blank\" " : ""; // convert link to url $status = preg_replace("/((http:\\/\\/|https:\\/\\/)[^ )\n]+)/e", "'<a href=\"\$1\" title=\"\$1\" {$target} >'. ((strlen('\$1')>={$linkMaxLen} ? substr('\$1',0,{$linkMaxLen}).'...':'\$1')).'</a>'", $status); // convert @ to follow $status = preg_replace("/(@([_a-z0-9\\-]+))/i", "<a href=\"http://twitter.com/\$2\" title=\"Follow \$2\" {$target} >\$1</a>", $status); // convert # to search $status = preg_replace("/(#([_a-z0-9\\-]+))/i", "<a href=\"https://twitter.com/search?q=\$2\" title=\"Search \$1\" {$target} >\$1</a>", $status); // return the status return $status; } //convert dates to readable format function relative_time($a) { //get current timestampt $b = strtotime("now"); //get timestamp when tweet created $c = strtotime($a); //get difference $d = $b - $c; //calculate different time values $minute = 60; $hour = $minute * 60; $day = $hour * 24; $week = $day * 7; if (is_numeric($d) && $d > 0) { //if less then 3 seconds if ($d < 3) { return "right now"; } //if less then minute if ($d < $minute) { return floor($d) . " seconds ago"; } //if less then 2 minutes if ($d < $minute * 2) { return "about 1 minute ago"; } //if less then hour if ($d < $hour) { return floor($d / $minute) . " minutes ago"; } //if less then 2 hours if ($d < $hour * 2) { return "about 1 hour ago"; } //if less then day if ($d < $day) { return floor($d / $hour) . " hours ago"; } //if more then day, but less then 2 days if ($d > $day && $d < $day * 2) { return "yesterday"; } //if less then year if ($d < $day * 365) { return floor($d / $day) . " days ago"; } //else return more than a year return "over a year ago"; } } $tp_twitter_plugin_tweets = maybe_unserialize(get_option('tp_twitter_plugin_tweets')); if (!empty($tp_twitter_plugin_tweets)) { //print '<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="http://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>'; print '<script>jQuery(window).load(function () { jQuery.getScript(\'http://platform.twitter.com/widgets.js\'); });</script>'; print '<div class="twitter-feed">'; print '<div class="tweets" id="twitterFeed">'; $fctr = '1'; if (is_array($tp_twitter_plugin_tweets)) { foreach ($tp_twitter_plugin_tweets as $tweet) { print '<div><a class="twTime" target="_blank" href="http://twitter.com/' . $instance['username'] . '/statuses/' . $tweet['status_id'] . '"><span>' . relative_time($tweet['created_at']) . '</span></a>' . convert_links($tweet['text']) . '</div>'; if ($fctr == $instance['tweetstoshow']) { break; } $fctr++; } } print '</div>'; print '<a href="https://twitter.com/' . $instance['username'] . '" class="twitter-follow-button" data-show-count="false">Follow @' . $instance['username'] . '</a>'; print '</div><!-- end twitter-feed -->'; // print ' // <div class="tp_recent_tweets"> // <ul>'; // $fctr = '1'; // foreach($tp_twitter_plugin_tweets as $tweet){ // print '<li><span>'.convert_links($tweet['text']).'</span><br /><a class="twitter_time" target="_blank" href="http://twitter.com/'.$instance['username'].'/statuses/'.$tweet['status_id'].'">'.relative_time($tweet['created_at']).'</a></li>'; // if($fctr == $instance['tweetstoshow']){ break; } // $fctr++; // } // print ' // </ul> // </div>'; } echo $after_widget; }
function widget($args, $instance) { extract($args); if (!empty($instance['title'])) { $title = apply_filters('widget_title', $instance['title']); } echo $before_widget; if (!empty($title)) { echo $before_title . $title . $after_title; } //check settings and die if not set if (empty($instance['username'])) { echo '<strong>Please fill all widget settings!</strong>' . $after_widget; return; } if (function_exists('ot_get_option')) { $consumerkey = ''; if (ot_get_option('meganews_twitter_consumer_key')) { $consumerkey = ot_get_option('meganews_twitter_consumer_key'); } $consumersecret = ''; if (ot_get_option('meganews_twitter_consumer_secret')) { $consumersecret = ot_get_option('meganews_twitter_consumer_secret'); } $accesstoken = ''; if (ot_get_option('meganews_twitter_access_token')) { $accesstoken = ot_get_option('meganews_twitter_access_token'); } $accesstokensecret = ''; if (ot_get_option('meganews_twitter_access_secret_token')) { $accesstokensecret = ot_get_option('meganews_twitter_access_secret_token'); } $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $instance['username'] . "&count=10") or die('Couldn\'t retrieve tweets! Wrong username?'); } if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_array[$i]['created_at'] = $tweets[$i]->created_at; $tweets_array[$i]['text'] = $tweets[$i]->text; $tweets_array[$i]['status_id'] = $tweets[$i]->id_str; } } //save tweets to wp option update_option('tp_twitter_plugin_tweets', serialize($tweets_array)); update_option('tp_twitter_plugin_last_cache_time', time()); echo '<!-- twitter cache has been updated! -->'; $tp_twitter_plugin_tweets = maybe_unserialize(get_option('tp_twitter_plugin_tweets')); if (!empty($tp_twitter_plugin_tweets)) { print ' <div class="twitter_updates"> <ul class="tweet_list">'; $fctr = '1'; foreach ($tp_twitter_plugin_tweets as $tweet) { print '<li>' . convert_links($tweet['text']) . '<br /><span class="tweet_time"><a target="_blank" href="http://twitter.com/' . $instance['username'] . '/statuses/' . $tweet['status_id'] . '">' . relative_time($tweet['created_at']) . '</a></span></li>'; if ($fctr == $instance['tweetstoshow']) { break; } $fctr++; } print ' </ul> </div>'; } echo $after_widget; }
function get_theme_tweets($username, $consumerkey, $consumerkeysecret, $accesstoken, $accesstokensecret, $notweets) { //check settings and die if not set if (empty($username) || empty($consumerkey) || empty($consumerkeysecret) || empty($accesstoken) || empty($accesstokensecret)) { echo '<strong>Please fill all Twitter settings!</strong>'; return; } // yes, it needs update function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $cacheContent = file_get_contents(__DIR__ . '/cache.txt'); if (!empty($cacheContent)) { $cacheContent = json_decode($cacheContent, true); } if (empty($cacheContent) || time() - $cacheContent['time'] > 60) { $connection = getConnectionWithAccessToken($consumerkey, $consumerkeysecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $username . "&count=10") or die('Couldn\'t retrieve tweets! Wrong username?'); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You will need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_array[$i]['created_at'] = $tweets[$i]->created_at; $tweets_array[$i]['text'] = $tweets[$i]->text; $tweets_array[$i]['status_id'] = $tweets[$i]->id_str; } } $cacheContent = array('time' => time(), 'tweets' => $tweets_array); file_put_contents(__DIR__ . '/cache.txt', json_encode($cacheContent)); } else { $tweets_array = $cacheContent['tweets']; } set_transient('twitter-bar-tweets', $tweets_array, 0); //convert links to clickable format function convert_links($status) { // convert link to url $status = preg_replace_callback("/((http:\\/\\/|https:\\/\\/)[^ )]+)/i", function ($u) { return '<a href="' . $u[0] . '" target="_blank">' . $u[0] . '</a>'; }, $status); // convert @ to follow $status = preg_replace_callback("/(@([_a-z0-9\\-]+))/i", function ($u) { return '<a href="http://twitter.com/' . $u[2] . '" title="Follow ' . $u[1] . '" target="_blank">' . $u[1] . '</a>'; }, $status); // convert # to search $status = preg_replace_callback("/(#([_a-z0-9\\-]+))/i", function ($u) { return '<a href="https://twitter.com/search?q=' . $u[2] . '" title="Search ' . $u[0] . '" target="_blank">' . $u[0] . '</a>'; }, $status); // return the status return $status; } //convert dates to readable format function relative_time($a) { //get current timestampt $b = strtotime("now"); //get timestamp when tweet created $c = strtotime($a); //get difference $d = $b - $c; //calculate different time values $minute = 60; $hour = $minute * 60; $day = $hour * 24; $week = $day * 7; if (is_numeric($d) && $d > 0) { //if less then 3 seconds if ($d < 3) { return "right now"; } //if less then minute if ($d < $minute) { return floor($d) . " seconds ago"; } //if less then 2 minutes if ($d < $minute * 2) { return "about 1 minute ago"; } //if less then hour if ($d < $hour) { return floor($d / $minute) . " minutes ago"; } //if less then 2 hours if ($d < $hour * 2) { return "about 1 hour ago"; } //if less then day if ($d < $day) { return floor($d / $hour) . " hours ago"; } //if more then day, but less then 2 days if ($d > $day && $d < $day * 2) { return "yesterday"; } //if less then year if ($d < $day * 365) { return floor($d / $day) . " days ago"; } //else return more than a year return "over a year ago"; } } //print tweets $tp_twitter_plugin_tweets = maybe_unserialize(get_transient('twitter-bar-tweets')); if (!empty($tp_twitter_plugin_tweets)) { $fctr = '1'; foreach ($tp_twitter_plugin_tweets as $tweet) { print '<div>' . convert_links($tweet['text']) . '</div>'; if ($fctr == $notweets) { break; } $fctr++; } } }
public function widget($args, $instance) { extract($args); if (!empty($instance['title'])) { $title = apply_filters('widget_title', $instance['title']); } echo $before_widget; if (!empty($title)) { echo $before_title . $title . $after_title; } //check settings and die if not set if (empty($instance['consumerkey']) || empty($instance['consumersecret']) || empty($instance['accesstoken']) || empty($instance['accesstokensecret']) || empty($instance['cachetime']) || empty($instance['username'])) { echo '<strong>Please fill all widget settings!</strong>' . $after_widget; return; } //check if cache needs update $tp_twitter_plugin_last_cache_time = get_option('tp_twitter_plugin_last_cache_time'); $diff = time() - $tp_twitter_plugin_last_cache_time; $crt = $instance['cachetime'] * 3600; // yes, it needs update if ($diff >= $crt || empty($tp_twitter_plugin_last_cache_time)) { if (!(require_once 'twitteroauth.php')) { echo '<strong>Couldn\'t find twitteroauth.php!</strong>' . $after_widget; return; } function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); return $connection; } $connection = getConnectionWithAccessToken($instance['consumerkey'], $instance['consumersecret'], $instance['accesstoken'], $instance['accesstokensecret']); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $instance['username'] . "&count=10&exclude_replies=" . $instance['excludereplies']) or die('Couldn\'t retrieve tweets! Wrong username?'); if (!empty($tweets->errors)) { if ($tweets->errors[0]->message == 'Invalid or expired token') { echo '<strong>' . $tweets->errors[0]->message . '!</strong><br />You\'ll need to regenerate it <a href="https://dev.twitter.com/apps" target="_blank">here</a>!' . $after_widget; } else { echo '<strong>' . $tweets->errors[0]->message . '</strong>' . $after_widget; } return; } $tweets_array = array(); for ($i = 0; $i <= count($tweets); $i++) { if (!empty($tweets[$i])) { $tweets_array[$i]['created_at'] = $tweets[$i]->created_at; //clean tweet text $tweets_array[$i]['text'] = preg_replace('/[\\x{10000}-\\x{10FFFF}]/u', '', $tweets[$i]->text); if (!empty($tweets[$i]->id_str)) { $tweets_array[$i]['status_id'] = $tweets[$i]->id_str; } } } //save tweets to wp option update_option('tp_twitter_plugin_tweets', serialize($tweets_array)); update_option('tp_twitter_plugin_last_cache_time', time()); echo '<!-- twitter cache has been updated! -->'; } $tp_twitter_plugin_tweets = maybe_unserialize(get_option('tp_twitter_plugin_tweets')); if (!empty($tp_twitter_plugin_tweets)) { print ' <div class="tp_recent_tweets"> <ul>'; $fctr = '1'; foreach ($tp_twitter_plugin_tweets as $tweet) { if (!empty($tweet['text'])) { if (empty($tweet['status_id'])) { $tweet['status_id'] = ''; } if (empty($tweet['created_at'])) { $tweet['created_at'] = ''; } print '<li><span>' . tp_convert_links($tweet['text']) . '</span><br /><a class="twitter_time" target="_blank" href="http://twitter.com/' . $instance['username'] . '/statuses/' . $tweet['status_id'] . '">' . tp_relative_time($tweet['created_at']) . '</a></li>'; if ($fctr == $instance['tweetstoshow']) { break; } $fctr++; } } print ' </ul> </div>'; } echo $after_widget; }
define('_OAUTH_TOKEN_SECRET', 'HSPzhYqQli2TheMCbkrxxI8GUYaNhislAfIOPVBWSk'); //La obtenes en el paso 1 $bit = tinyurl($link); //reducimos el link con la api de bit.ly $quedan = 140 - strlen($bit) - 4; // calculo los caracteres restantes que me quedan para publicar restando los puntos suspensivo $mensaje = substr($mensaje, 0, $quedan) . ' ...' . $bit; // corto el mensaje en caso de que sea muy largo //declaramos la función que realiza la conexión a tu aplicación de twitter function getConnectionWithAccessToken() { $connection = new TwitterOAuth(_CONSUMER_KEY, _CONSUMER_SECRET, _OAUTH_TOKEN, _OAUTH_TOKEN_SECRET); return $connection; } //Realizamos la conexión $connection = getConnectionWithAccessToken(); //Publicamos el mensaje en twitter $twitter = $connection->post('statuses/update', array('status' => utf8_encode($mensaje))); //Función para acortar URL con bit.ly . Primero debemos registrarnos en http://bit.ly para obtener clave api y usuario function tinyurl($url_larga) { $tiny = "http://api.bit.ly/v3/shorten?login=o_3tp23r37p4&apiKey=R_5d4bb1271dc717c4e370c38e70cb5eb6&format=txt&longUrl=" . $url_larga; $sesion = curl_init(); curl_setopt($sesion, CURLOPT_URL, $tiny); curl_setopt($sesion, CURLOPT_RETURNTRANSFER, 1); $url_tiny = curl_exec($sesion); curl_close($sesion); return $url_tiny; } ?>
function widget($args, $instance) { $title = !empty($instance['title']) ? apply_filters('widget_title', esc_attr($instance['title'])) : null; $expiration = !empty($instance['expiration']) ? esc_attr($instance['expiration']) : 300; $layout = !empty($instance['layout']) ? esc_attr($instance['layout']) : 'list'; $thumbnail = !empty($instance['thumbnail']) ? esc_attr($instance['thumbnail']) : null; $username = !empty($instance['username']) ? esc_attr($instance['username']) : null; $consumerkey = !empty($instance['consumerkey']) ? esc_attr($instance['consumerkey']) : null; $consumersecret = !empty($instance['consumersecret']) ? esc_attr($instance['consumersecret']) : null; $accesstoken = !empty($instance['accesstoken']) ? esc_attr($instance['accesstoken']) : null; $accesstokensecret = !empty($instance['accesstokensecret']) ? esc_attr($instance['accesstokensecret']) : null; $shows = !empty($instance['shows']) ? absint($instance['shows']) : 5; echo $args['before_widget']; if ($title) { echo $args['before_title'] . $title . $args['after_title']; } if (!class_exists('TwitterOAuth')) { return; } if (!function_exists('getConnectionWithAccessToken')) { return; } if (false === ($twitterData = get_transient($this->id))) { $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $username . "&count=" . $shows); $twitterData = $tweets; set_transient($this->id, $twitterData, apply_filters('transient_expiration', $expiration)); } if (empty($twitterData->errors[0]->message)) { if ($layout == 'list') { ?> <div class="twitter-list"> <ul> <?php foreach ($twitterData as $tweet) { ?> <li> <?php if ($thumbnail == 'on') { ?> <a class="twitter-profile-link" href="<?php print gazeta_get_twitter_profile_link($username); ?> "><img src="<?php print apply_filters('gazeta_twitters/profile_image_url', gazeta_get_twitter_bigger_avatar($tweet->user->profile_image_url), $tweet); ?> " alt="<?php print apply_filters('gazeta_twitters/name', esc_attr($tweet->user->name), $tweet); ?> "/></a> <?php } ?> <div class="twitter-inner <?php if (!$thumbnail) { ?> no-thumbnail-image<?php } ?> "> <span class="twitter-username"><?php print apply_filters('gazeta_twitters/name', esc_attr($tweet->user->name)); ?> </span> <p><?php print gazeta_find_twitter_user(gazeta_convert_string_to_link($tweet->text)); ?> </p> <p><?php print apply_filters('gazeta_twitters/time', sprintf(__('%s ago', 'gazeta'), human_time_diff(gazeta_conver_twitter_time_to_timeago($tweet->created_at), current_time('timestamp'))), $tweet); ?> </p> </div> </li> <?php } ?> </ul> </div> <?php } else { $is_rtl = is_rtl() ? 'yes' : 'no'; ?> <div data-rtl="<?php print $is_rtl; ?> " id="<?php print $this->id; ?> " class="tweet-feed"> <?php foreach ($twitterData as $tweet) { ?> <div class="tf-info"> <?php if ($thumbnail) { ?> <a class="twitter-profile-link" href="<?php print gazeta_get_twitter_profile_link($username); ?> "><img src="<?php print apply_filters('gazeta_twitters/profile_image_url', gazeta_get_twitter_bigger_avatar($tweet->user->profile_image_url), $tweet); ?> " alt="<?php print apply_filters('gazeta_twitters/name', esc_attr($tweet->user->name), $tweet); ?> "/></a> <?php } ?> <p><?php print gazeta_find_twitter_user(gazeta_convert_string_to_link($tweet->text)); ?> </p> </div> <?php } ?> </div> <?php } } else { print isset($tweets->errors[0]->message) ? $tweets->errors[0]->message . '!' : __('Getting feeds error.', 'gazeta'); } echo $args['after_widget']; }
function display_latest_tweets($twitter_user_id, $cache_file = 'tweets.txt', $tweets_to_display = 1, $ignore_replies = false, $include_rts = false, $twitter_wrap_open = '<ul class="home-tweets-ul">', $twitter_wrap_close = '</ul>', $tweet_wrap_open = '<li><p class="home-tweet-tweet">', $meta_wrap_open = '<br/><span class="home-tweet-date">', $meta_wrap_close = '</span>', $tweet_wrap_close = '</p></li>', $date_format = 'g:i A M jS', $twitter_style_dates = true) { // Twitter keys (You'll need to visit https://dev.twitter.com and register to get these. $consumerkey = "RfhIAfsqShY6srbg38B8JQFti"; $consumersecret = "REOs7IlfHD86dawmsJwuvD2nasir27LXvT25BVLvzGwjhacita"; $accesstoken = "22193430-QgEw8fhsSlI16IzdO5npdouAhIqbQvVCBmGGUNzXJ"; $accesstokensecret = "6oZrv5CYeKy8EJzTQXryzIpDmZo4J9Jy4QtPSBnuyoaPO"; // Seconds to cache feed (Default : 3 minutes). $cachetime = 60 * 3; // Time that the cache was last updtaed. $cache_file_created = file_exists($cache_file) ? filemtime($cache_file) : 0; // A flag so we know if the feed was successfully parsed. $tweet_found = false; // Show cached version of tweets, if it's less than $cachetime. if (time() - $cachetime < $cache_file_created) { $tweet_found = true; // Display tweets from the cache. readfile($cache_file); } else { // Cache file not found, or old. Authenticae app. $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); if ($connection) { // Get the latest tweets from Twitter $get_tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitter_user_id . "&count=" . $tweets_to_display . "&include_rts=" . $include_rts . "&exclude_replies=" . $ignore_replies); // Error check: Make sure there is at least one item. if (count($get_tweets)) { // Define tweet_count as zero $tweet_count = 0; // Start output buffering. ob_start(); // Open the twitter wrapping element. $twitter_html = $twitter_wrap_open; // Iterate over tweets. foreach ($get_tweets as $tweet) { $tweet_found = true; $tweet_count++; $tweet_desc = $tweet->text; // Add hyperlink html tags to any urls, twitter ids or hashtags in the tweet. $tweet_desc = preg_replace("/((http)+(s)?:\\/\\/[^<>\\s]+)/i", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $tweet_desc); $tweet_desc = preg_replace("/[@]+([A-Za-z0-9-_]+)/", "<a href=\"http://twitter.com/\\1\" target=\"_blank\">\\0</a>", $tweet_desc); $tweet_desc = preg_replace("/[#]+([A-Za-z0-9-_]+)/", "<a href=\"http://twitter.com/search?q=%23\\1\" target=\"_blank\">\\0</a>", $tweet_desc); // replace t.co links with expanded link, if present $entities = $tweet->entities; if (!empty($entities->urls[0]->expanded_url)) { $tweet_desc = str_replace($entities->urls[0]->url, $entities->urls[0]->expanded_url, $tweet_desc); } $media_url = ''; // Capture media url if exists $media_url = $entities->media[0]->media_url; // Convert Tweet display time to a UNIX timestamp. Twitter timestamps are in UTC/GMT time. $tweet_time = strtotime($tweet->created_at); if ($twitter_style_dates) { // Current UNIX timestamp. $current_time = time(); $time_diff = abs($current_time - $tweet_time); switch ($time_diff) { case $time_diff < 60: $display_time = $time_diff . ' seconds ago'; break; case $time_diff >= 60 && $time_diff < 3600: $min = floor($time_diff / 60); $display_time = $min . ' minutes ago'; break; case $time_diff >= 3600 && $time_diff < 86400: $hour = floor($time_diff / 3600); $display_time = 'about ' . $hour . ' hour'; if ($hour > 1) { $display_time .= 's'; } $display_time .= ' ago'; break; default: $display_time = date($date_format, $tweet_time); break; } } else { $display_time = date($date_format, $tweet_time); } // Render the tweet. $twitter_html .= $tweet_wrap_open . html_entity_decode($tweet_desc) . $meta_wrap_open . '<a href="http://twitter.com/' . $twitter_user_id . '">' . $display_time . '</a>' . $meta_wrap_close . $tweet_wrap_close; // If we have processed enough tweets, stop. if ($tweet_count >= $tweets_to_display) { break; } } // Close the twitter wrapping element. $twitter_html .= $twitter_wrap_close; //echo $twitter_html; echo json_encode(array("date" => $display_time, "text" => $tweet_desc, "media" => $media_url)); // Generate a new cache file. $file = fopen($cache_file, 'w'); // Save the contents of output buffer to the file, and flush the buffer. fwrite($file, ob_get_contents()); fclose($file); ob_end_flush(); } } } }
function ts_get_user_data($widget_options) { // twitter keys $consumerkey = $widget_options['consumer_key']; $consumersecret = $widget_options['consumer_secret']; $accesstoken = $widget_options['access_token']; $accesstokensecret = $widget_options['access_token_secret']; $notweets = $widget_options['limit']; $twitteruser = $widget_options['username']; // if username isn't array check if user separated usernames with comma if (!is_array($twitteruser)) { $twitteruser = explode(',', trim($twitteruser)); } // create connection $connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); // check if there are more then one username if (count($twitteruser) > 1) { $all_tweets = array(); $remainder = $notweets % count($twitteruser); $tweets_per_user = floor($notweets / count($twitteruser)); // split tweets per user so it doesn't exceed limit foreach ($twitteruser as $user) { if ($remainder > 0) { $notweets = $tweets_per_user + $remainder; } else { $notweets = $tweets_per_user; } // get tweets $tweets[] = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $user . "&count=" . $notweets); } // merge into one array $all_tweets = $tweets[0]; for ($i = 1; $i < count($tweets); $i++) { $all_tweets = array_merge($all_tweets, $tweets[$i]); } } else { $all_tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" . $twitteruser[0] . "&count=" . $notweets); } return $all_tweets; }
$NumFriends = $datosUsuario->friends_count; $NumFollowers = $datosUsuario->followers_count; //Borrar Tweet if (isset($_GET["post"])) { $connection = getConnectionWithAccessToken($token, $token_secret); $connection->post('statuses/destroy/' . $_GET["post"], array()); header('Location: app.php'); } //Gets Timeline function getConnectionWithAccessToken($oauth_token, $oauth_token_secret) { require "autentificacion.php"; $connection = new TwitterOAuth($consumer_key, $consumer_secret, $token, $token_secret); return $connection; } $connection = getConnectionWithAccessToken($token, $token_secret); $content = $connection->get("statuses/user_timeline"); //Post tweet $tweet = @$_POST['tweet']; if ($tweet != "") { $statues = $conexion->post("statuses/update", array("status" => $tweet)); header('Location: app.php'); } if (isset($_GET['logout'])) { session_unset(); $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); } ?> <!DOCTYPE html> <html lang="en"><head>