function launchTwitter($terminoBuscar) { /*from tw.php*/ $url = "https://api.twitter.com/1.1/users/search.json"; $query = array('count' => 100, 'q' => urlencode($terminoBuscar), "result_type" => "recent"); $oauth_access_token = "336107062-3FRWmW9u2WqAD8K2BYkkhRyYPiuElAls5xGSPxHO"; // original 336107062-3FRWmW9u2WqAD8K2BYkkhRyYPiuElAls5xGSPxHO $oauth_access_token_secret = "EYOobKPmD0Ym4f30AEOM0xGjlfnaan1Vt17fkUYuJKOnY"; // original EYOobKPmD0Ym4f30AEOM0xGjlfnaan1Vt17fkUYuJKOnY $consumer_key = "zCYb1EGbavxyFI26TSCYpDVHT"; //original zCYb1EGbavxyFI26TSCYpDVHT $consumer_secret = "limIRUXH0FiFRVcdDpOi6SwAxt3ZZpNvj58P2WVXr5mspF0J7t"; // original limIRUXH0FiFRVcdDpOi6SwAxt3ZZpNvj58P2WVXr5mspF0J7t $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_params = empty($query) ? $oauth : array_merge($query, $oauth); $base_info = buildBaseString($url, 'GET', $base_params); $url = empty($query) ? $url : $url . "?" . http_build_query($query); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); $resultTwitter = json_decode($json); $fp = fopen($_SERVER["DOCUMENT_ROOT"] . '/publication/search/results/resultTwitter.json', 'w'); fwrite($fp, json_encode($resultTwitter)); fclose($fp); /*fin from tw.php */ // exec('php search/tw.php '.$terminoBuscar); // exit("End TWITTER ".PHP_EOL); }
function returnTweet() { $oauth_access_token = "4802840487-Vez1OhbjdjPQ5A0FWVmJNTNw8uzRFuccjabaL3b"; $oauth_access_token_secret = "H6X4hZmrsjUDqRV3QlXJgSnCI1z4NvM3TRX8CPzb7PU60"; $consumer_key = "Zde32xAZZD7qlUT94U0KabyHG"; $consumer_secret = "J85YV2lzFSOiF5aFi1QhDvNq3UtnQZo1cDi8wwQrWNWTiRaO4K"; $twitter_timeline = "user_timeline"; // create request $request = array('screen_name' => 'Weblib', 'count' => '4'); $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_token' => $oauth_access_token, 'oauth_nonce' => time(), 'oauth_timestamp' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_version' => '1.0'); // merge request and oauth to one array $oauth = array_merge($oauth, $request); // do some magic $base_info = buildBaseString("https://api.twitter.com/1.1/statuses/{$twitter_timeline}.json", 'GET', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // make request $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => "https://api.twitter.com/1.1/statuses/{$twitter_timeline}.json?" . http_build_query($request), CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); return parseTweets(json_decode($json, true)); }
function queryTwitter($search) { $url = "https://api.twitter.com/1.1/users/search.json"; //if($search != "") //$search = "#".$search; $query = array('count' => 100, 'q' => urlencode($search), "result_type" => "recent"); $oauth_access_token = "336107062-3FRWmW9u2WqAD8K2BYkkhRyYPiuElAls5xGSPxHO"; $oauth_access_token_secret = "EYOobKPmD0Ym4f30AEOM0xGjlfnaan1Vt17fkUYuJKOnY"; $consumer_key = "zCYb1EGbavxyFI26TSCYpDVHT"; $consumer_secret = "limIRUXH0FiFRVcdDpOi6SwAxt3ZZpNvj58P2WVXr5mspF0J7t"; $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_params = empty($query) ? $oauth : array_merge($query, $oauth); $base_info = buildBaseString($url, 'GET', $base_params); $url = empty($query) ? $url : $url . "?" . http_build_query($query); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); return json_decode($json); }
function getTweets($usr, $count, $oauth_access_token, $oauth_access_token_secret, $consumer_key, $consumer_secret) { $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; // $oauth_access_token = "7134262-5oEfJM3e9QNcP6eFWnoPY6hkPSJmhqXFCljSsanprg"; // $oauth_access_token_secret = "UBluMI03on2cIDgYaaSyuwHeAlG5OpfjVt5ZBUg5SY"; // $consumer_key = "fCuoVkS3OviKVxzv9nHhA"; // $consumer_secret = "AZAEBg1CO60A2ZYcAI4UDM5yy94sRJPOpHXaCNL9qA"; $oauth = array('oauth_consumer_key' => $consumer_key, 'screen_name' => $usr, 'count' => $count, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_info = buildBaseString($url, 'GET', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // Make Requests $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url . '?screen_name=' . $usr . '&count=' . $count, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); //$twitter_data = json_decode($json); return $json; }
function postTweet($text) { $tweet = $text; $data_array = array('status' => $tweet); $postfields = http_build_query($data_array); $url = "https://api.twitter.com/1.1/statuses/update.json"; $oauth_access_token = ""; $oauth_access_token_secret = ""; $consumer_key = ""; $consumer_secret = ""; $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => rand() . rand(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0', 'status' => $tweet); $base_info = buildBaseString($url, 'POST', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; $header = array(buildAuthorizationHeader($oauth)); // Make Requests $options = array(CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $postfields, CURLOPT_HEADER => false, CURLOPT_HTTPHEADER => $header, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); return $json; }
function file_get_contents_curl($url, $user = null) { $ch = curl_init($url); if ($user) { $a = explode(',', $user->access_token); $oauth_token = $a[0]; $oauth_token_secret = $a[1]; $oauth = array('oauth_consumer_key' => CONSUMER_KEY, 'oauth_nonce' => md5(microtime() . mt_rand()), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => time(), 'oauth_token' => $oauth_token, 'oauth_version' => '1.0'); $base_info = buildBaseString($url, 'POST', $oauth); $composite_key = rawurlencode(CONSUMER_SECRET) . '&' . rawurlencode($oauth_token_secret); $oauth['oauth_signature'] = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $header = buildAuthorizationHeader($oauth); // debuglog($header); curl_setopt($ch, CURLOPT_HTTPHEADER, array($header)); } $maxallowed = 64 * 1024; $totalread = 0; $data = ''; $callback = function ($ch, $text) use(&$data, &$maxallowed, &$totalread) { $data .= $text; $count = strlen($text); $totalread += $count; if ($totalread >= $maxallowed || stristr($data, '</head>')) { return 0; } return $count; }; curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; Tweetshow 2.1)'); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); curl_setopt($ch, CURLOPT_TIMEOUT, 20); curl_setopt($ch, CURLOPT_ENCODING, "deflate,gzip"); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_WRITEFUNCTION, $callback); curl_exec($ch); curl_close($ch); // debuglog(" total read $totalread, ".strlen($data)); return $data; }
function yit_get_tweets($oauth_access_token, $oauth_access_token_secret, $consumer_key, $consumer_secret, $limit) { $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'count' => $limit, 'oauth_version' => '1.0'); $base_info = buildBaseString($url, 'GET', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url . '?count=' . $limit, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); return json_decode($json); }
break; case '1': $dividir = explode('/?', $url); $dividir = is_array($dividir) ? $dividir : explode('?', $url); $urls = is_array($dividir) ? $dividir[0] : $dividir; $dividir = is_array($dividir) ? explode('twitter.com/', $dividir[0]) : explode('twitter.com/', $dividir); $terminoBuscar = $dividir['1']; $url = "https://api.twitter.com/1.1/users/search.json"; $query = array('count' => 6, 'q' => urlencode($terminoBuscar), "result_type" => "recent"); $oauth_access_token = "336107062-3FRWmW9u2WqAD8K2BYkkhRyYPiuElAls5xGSPxHO"; $oauth_access_token_secret = "EYOobKPmD0Ym4f30AEOM0xGjlfnaan1Vt17fkUYuJKOnY"; $consumer_key = "zCYb1EGbavxyFI26TSCYpDVHT"; $consumer_secret = "limIRUXH0FiFRVcdDpOi6SwAxt3ZZpNvj58P2WVXr5mspF0J7t"; $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_params = empty($query) ? $oauth : array_merge($query, $oauth); $base_info = buildBaseString($url, 'GET', $base_params); $url = empty($query) ? $url : $url . "?" . http_build_query($query); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); $resultTwitter = json_decode($json); for ($i = 0; $i < count($resultTwitter); $i++) { if ($resultTwitter[$i]->screen_name == $terminoBuscar) { $resultTwitter = $resultTwitter[$i]; $fp = fopen($_SERVER["DOCUMENT_ROOT"] . '/publication/search/results/resultTwitter.json', 'w');
$camps = file('data-camps.txt', FILE_IGNORE_NEW_LINES); $TWITTER_CHARACTER_LIMIT = 140; $markov = new Markov(); $markov->init($titles); $title = $markov->generate(4); $markov = new Markov(); $markov->init($camps); $camp = $markov->generate(4); $chain = "{$title} @ {$camp} (" . address() . ") #burningman #bot"; if (strlen($chain) >= $TWITTER_CHARACTER_LIMIT) { // try again composeTweet(); } else { return $chain; } } // echo composeTweet(); $url = "https://api.twitter.com/1.1/statuses/update.json"; $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_info = buildBaseString($url, 'POST', $oauth); // echo $base_info; $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // make requests $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_POSTFIELDS => array('status' => composeTweet()), CURLOPT_HEADER => false, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed);
public function index() { $bbConfig = array(); $bbConfig['access_token'] = $this->fetch('access_token', null, null, false, false); $bbConfig['access_token_secret'] = $this->fetch('access_token_secret', null, null, false, false); $bbConfig['consumer_key'] = $this->fetch('consumer_key', null, null, false, false); $bbConfig['consumer_secret'] = $this->fetch('consumer_secret', null, null, false, false); $count = $this->fetchParam('count', 5, 'is_numeric'); $screen_name = $this->fetchParam('screen_name', null); $include_rts = $this->fetchParam('include_rts', true); $include_entities = $this->fetchParam('include_entities', true); $exclude_replies = $this->fetchParam('exclude_replies', false); $cache_length = $this->fetchParam('cache', 60); // Cache time in seconds // Check the cache before continuing. We don't want to hit the API on every request. $cached_tweets = $this->cache->getYAML($screen_name); if ($cached_tweets) { // If there's a cache and it's older than our specified time, delete it. It'll be recreated later. if ($this->cache->getAge($screen_name) >= $cache_length) { $this->cache->delete($screen_name); } else { return $cached_tweets; } } function buildBaseString($baseURI, $method, $params) { $r = array(); ksort($params); foreach ($params as $key => $value) { $r[] = "{$key}=" . rawurlencode($value); } return $method . "&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r)); //return complete base string } function buildAuthorizationHeader($oauth) { $r = 'Authorization: OAuth '; $values = array(); foreach ($oauth as $key => $value) { $values[] = "{$key}=\"" . rawurlencode($value) . "\""; } $r .= implode(', ', $values); return $r; } $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; if ($exclude_replies == true) { $query = array('count' => $count, 'screen_name' => $screen_name, 'include_rts' => $include_rts, 'exclude_replies' => $exclude_replies, 'include_entities' => $include_entities); } else { $query = array('count' => $count, 'screen_name' => $screen_name, 'include_rts' => $include_rts, 'include_entities' => $include_entities); } $oauth_access_token = $bbConfig['access_token']; $oauth_access_token_secret = $bbConfig['access_token_secret']; $consumer_key = $bbConfig['consumer_key']; $consumer_secret = $bbConfig['consumer_secret']; $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_params = empty($query) ? $oauth : array_merge($query, $oauth); $base_info = buildBaseString($url, 'GET', $base_params); $url = empty($query) ? $url : $url . "?" . http_build_query($query); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); $twitter_data = json_decode($json); if (isset($twitter_data)) { $tweets = theNest($twitter_data); $output = array("tweets" => array(), "user" => array()); foreach ($tweets as $tweet) { $tweetText = $tweet['text']; if (isset($tweet['entities'])) { if (is_array($tweet['entities']['urls'])) { $entityUrl = $tweet['entities']['urls']; } if (is_array($tweet['entities']['hashtags'])) { $entityHash = $tweet['entities']['hashtags']; } if (is_array($tweet['entities']['user_mentions'])) { $entityUser = $tweet['entities']['user_mentions']; } } if (!empty($entityUrl) || !empty($entityHash) || !empty($entityUser)) { foreach ($entityUrl as $url) { $find = $url['url']; $replace = '<a href="' . $find . '">' . $url['display_url'] . '</a>'; $tweetText = str_replace($find, $replace, $tweetText); } foreach ($entityHash as $hashtag) { $find = '#' . $hashtag['text']; $replace = '<a href="https://twitter.com/#!/search/%23' . $hashtag['text'] . '">' . $find . '</a>'; $tweetText = str_replace($find, $replace, $tweetText); } foreach ($entityUser as $user_mention) { $find = "@" . $user_mention['screen_name']; $replace = '<a href="https://twitter.com/' . $user_mention['screen_name'] . '">' . $find . '</a>'; $tweetText = str_replace($find, $replace, $tweetText); } } if (!empty($tweet['entities']['media'])) { foreach ($tweet['entities']['media'] as $media) { $find = $media['url']; $replace = '<a href="' . $media['url'] . '">' . $media['display_url'] . '</a>'; $tweetText = str_replace($find, $replace, $tweetText); } } $tweet['text'] = $tweetText; $tweet['tweet_url'] = "https://twitter.com/" . $tweet['user']['screen_name'] . "/status/" . $tweet['id']; array_push($output["tweets"], $tweet); array_push($output["user"], $tweet['user']); } for ($i = 1; $i <= $count; $i++) { unset($output["user"][$i]); } // Place tweets for user into their own cache file $this->cache->putYAML($screen_name, $output); return $output; } return false; }
function getTweets($count) { $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; $oauth_access_token = "210608671-X9bfQpwThRXm1ODQ6kkODb7gQBGotJHAR5sEmjhR"; $oauth_access_token_secret = "01OjsWkfsOsZSCqRyiv9trJ7WbeJorGFrUjMKgSU510"; $consumer_key = "RXKTrdedwfCv94S70BmKg"; $consumer_secret = "cdLoF9Vcy7WMYurMywsJVXHgEy8olhMqIUDCYms8"; $oauth = array('screen_name' => 'neilcarpenter', 'count' => $count, 'oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_info = buildBaseString($url, 'GET', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // Make Requests $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url . '?screen_name=neilcarpenter&count=' . $count, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); //$twitter_data = json_decode($json); return $json; }
function indonez_get_twitter_timeline($twitter_id, $max_tweets, $consumer_key, $consumer_secret, $user_token, $user_secret) { $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; $oauth_access_token = $user_token; $oauth_access_token_secret = $user_secret; $consumer_key = $consumer_key; $consumer_secret = $consumer_secret; $oauth = array('screen_name' => $twitter_id, 'count' => $max_tweets, 'oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_info = buildBaseString($url, 'GET', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // Make Requests $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url . '?screen_name=' . $twitter_id . '&count=' . $max_tweets, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); $twitter_data = json_decode($json); $out = ''; foreach ($twitter_data as $key => $value) { $regex = '@((https?://)?([-\\w]+\\.[-\\w\\.]+)+\\w(:\\d+)?(/([-\\w/_\\.\\,]*(\\?\\S+)?)?)*)@'; $text = $value->text; $text = preg_replace('@(https?://([-\\w\\.]+)+(:\\d+)?(/([\\w/_\\./-]*(\\?\\S+)?)?)?)@', '<a target="blank" title="$1" href="$1">$1</a>', $text); $text = preg_replace('/#([0-9a-zA-Z_-]+)/', "<a target='blank' title='\$1' href=\"http://twitter.com/search?q=\$1\">#\$1</a>", $text); $text = preg_replace("/@([0-9a-zA-Z_-]+)/", "<a target='blank' title='\$1' href=\"http://twitter.com/\$1\">@\$1</a>", $text); $out .= '<li>' . $text . '</li>'; } return $out; }
function getTwitterFeed() { /* * Build and sort the URL variables for Twitter Oauth Request * * @param string $baseURI - URI for Twitter * @param string $method - Method (GET or POST) to use when transmitting * @param array $params - Required Oauth parameters sent to Twitter * @return string */ function buildBaseString($baseURI, $method, $params) { $r = array(); ksort($params); foreach ($params as $key => $value) { $r[] = "{$key}=" . rawurlencode($value); } return $method . "&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r)); } /* * Build the Oauth Header for Twitter * * @param array $oauth - options for header elements * @return string */ function buildAuthorizationHeader($oauth) { $r = 'Authorization: OAuth '; $values = array(); foreach ($oauth as $key => $value) { $values[] = "{$key}=\"" . rawurlencode($value) . "\""; } $r .= implode(', ', $values); return $r; } /** * Make any URLs in Twitter posts clickable links * * @param string $string - A string that might contain a URL * @return string */ function makeLink($string) { /*** make sure there is an http:// on all URLs ***/ /*$string = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2",$string);*/ $string = preg_replace("#(^|[\n ])([\\w]+?://[\\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $string); $string = preg_replace("#(^|[\n ])((www)\\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $string); /*** Turn Any @ symbol into a link ***/ $string = preg_replace("/@(\\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $string); /*** Turn any # symbol into a link ***/ $string = preg_replace("/#(\\w+)/", "<a href=\"http://twitter.com/search?q=%23\\1\" target=\"_blank\">#\\1</a>", $string); return $string; } /* * Check for Cached Version of Feed * if not cached, create cache version */ $isScode = $sCode; $sstf_transient = get_transient('sstf_cached'); if (!$sstf_transient || trim(esc_attr(get_option('sstf_consumer_twitter_cache_time'))) == '0') { //Remove any Transient Value delete_transient('sstf_cached'); delete_transient('sstf_sCode'); //Oauth settings $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; $consumer = trim(esc_attr(get_option('sstf_consumer_screen_name'))); $consumer_num = trim(esc_attr(get_option('sstf_consumer_num'))); $consumer_links = trim(esc_attr(get_option('sstf_consumer_make_links'))); $consumer_key = trim(esc_attr(get_option('sstf_consumer_key'))); $consumer_secret = trim(esc_attr(get_option('sstf_consumer_secret'))); $oauth_access_token = trim(esc_attr(get_option('sstf_consumer_token'))); $oauth_access_token_secret = trim(esc_attr(get_option('sstf_consumer_token_secret'))); $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0', 'count' => $consumer_num, 'screen_name' => $consumer); $base_info = buildBaseString($url, 'GET', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // Make cURL Request to Twitter $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url . '?screen_name=' . $consumer . '&count=' . $consumer_num, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); $twitter_data = json_decode($json, true); /* * format the feed */ $t = 0; $sstfTweet = ''; $sstfTweetLinks = ''; $wrapTweet = false; $closeUl = ''; $sstfElement = trim(esc_attr(get_option('sstf_consumer_element'))); if ($sstfElement) { if ($sstfElement == "li") { $sstfTweetLinks = '<ul class="sstfeedwrap">'; $closeUl = "</ul>"; } $wrapTweet = true; } foreach ($twitter_data as &$tData) { if ($consumer_links == "yes") { $sstfTweet = makeLink($twitter_data[$t]['text']); } else { $sstfTweet = $twitter_data[$t]['text']; } if ($wrapTweet) { $sstfTweetLinks .= "<" . $sstfElement . " class=\"sstfeed\">" . $sstfTweet . $shortCodeRun . "</" . $sstfElement . ">"; } else { $sstfTweetLinks .= $sstfTweet; } $t++; } $sstfTweetLinks = $sstfTweetLinks . $closeUl; /* * Cache Feed */ $sstf_cache_time = intval(trim(esc_attr(get_option('sstf_consumer_twitter_cache_time')))); if ($sstf_cache_time == null) { $sstf_cache_time = 900; } set_transient('sstf_cached', $sstfTweetLinks, $sstf_cache_time); if ($sCode) { set_transient('sstf_sCode', 'TRUE', $sstf_cache_time); } return get_transient('sstf_cached'); } else { return $sstf_transient; } }
function display_latest_tweets($twitter_user_id, $cache_file = './twitter.txt', $tweets_to_display = 3, $ignore_replies = false, $twitter_wrap_open = '<ul id="twitter">', $twitter_wrap_close = '</ul>', $tweet_wrap_open = '<li class="clearfix tweet">', $meta_wrap_open = '', $meta_wrap_close = '', $tweet_wrap_close = '</li>', $date_format = 'd-m-Y H:i', $twitter_style_dates = false) { // Seconds to cache feed (1 hour). $cachetime = 60 * 60; // Time that the cache was last filled. $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 file from cache if still valid. if (time() - $cachetime < $cache_file_created && 1 == 2) { $tweet_found = true; // Display tweets from the cache. readfile($cache_file); } else { // Cache file not found, or old. Fetch the RSS feed from Twitter. $oauth_access_token = "105725270-kGXv4JQ40XDlx6Qaw2ET27T3BeQISIsJMewtjaMN"; $oauth_access_token_secret = "QFG28u5p8I1IJZNWbKySTPbCntWXnSM6sTsFTz9AZQ"; $consumer_key = "NdzOu5NyfyT8962hkmbyog"; $consumer_secret = "BU2I2ABWue5npS2GsG3f7M6YrGDJkRLn2qchXvN44"; $twitter_timeline = "user_timeline"; // mentions_timeline / user_timeline / home_timeline / retweets_of_me // create request $request = array('screen_name' => $twitter_user_id, 'count' => $tweets_to_display); $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $oauth = array_merge($oauth, $request); // do some magic $base_info = buildBaseString("https://api.twitter.com/1.1/statuses/{$twitter_timeline}.json", 'GET', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // make request $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => "https://api.twitter.com/1.1/statuses/{$twitter_timeline}.json?" . http_build_query($request), CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); curl_close($feed); $rss = json_decode($json, true); //$rss = file_get_contents('https://api.twitter.com/1/statuses/user_timeline.rss?screen_name='.$twitter_user_id); if ($rss) { // Parse the RSS feed to an XML object. //$xml = simplexml_load_string($rss); $xml = $rss; if ($xml !== false) { // Error check: Make sure there is at least one item. if (sizeof($xml) > 0) { $tweet_count = 0; // Start output buffering. ob_start(); // Open the twitter wrapping element. $twitter_html = $twitter_wrap_open; //echo "<pre>".print_r($rss,true)."</pre>"; // Iterate over tweets. foreach ($rss as $tweet) { // Twitter feeds begin with the username, "e.g. User name: Blah" // so we need to strip that from the front of our tweet. //$tweet_desc = substr($tweet["text"],strpos($tweet["text"],":")+2); $tweet_desc = $tweet["text"]; $tweet_desc = htmlspecialchars($tweet_desc); $tweet_first_char = substr($tweet_desc, 0, 1); // If we are not ignoring replies, or tweet is not a reply, process it. if ($tweet_first_char != '@' || $ignore_replies == false) { $tweet_found = true; $tweet_count++; // Add hyperlink html tags to any urls, twitter ids or hashtags in the tweet. $tweet_desc = preg_replace('/(https?:\\/\\/[^\\s"<>]+)/', '<a href="$1">$1</a>', $tweet_desc); $tweet_desc = preg_replace('/(^|[\\n\\s])@([^\\s"\\t\\n\\r<:]*)/is', '$1<a href="http://twitter.com/$2">@$2</a>', $tweet_desc); $tweet_desc = preg_replace('/(^|[\\n\\s])#([^\\s"\\t\\n\\r<:]*)/is', '$1<a href="http://twitter.com/search?q=%23$2">#$2</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 = '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); } $display_time = strtoupper($display_time); // Render the tweet. $twitter_html .= '<p class="time">' . $display_time . '</p>' . $tweet_wrap_open . 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(); } } } } // In case the RSS feed did not parse or load correctly, show a link to the Twitter account. if (!$tweet_found) { echo $twitter_wrap_open . $tweet_wrap_open . 'Oops, our twitter feed is unavailable right now. ' . $meta_wrap_open . '<a href="http://twitter.com/' . $twitter_user_id . '">Follow us on Twitter</a>' . $meta_wrap_close . $tweet_wrap_close . $twitter_wrap_close; } }
public function generate_twitter_oauth_token() { function buildBaseString($baseURI, $params) { $r = array(); ksort($params); foreach ($params as $key => $value) { $r[] = "{$key}=" . rawurlencode($value); } return "POST&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r)); } function getCompositeKey($consumerSecret, $requestToken) { return rawurlencode($consumerSecret) . '&' . rawurlencode($requestToken); } function buildAuthorizationHeader($oauth) { $r = 'Authorization: OAuth '; $values = array(); foreach ($oauth as $key => $value) { $values[] = "{$key}=\"" . rawurlencode($value) . "\""; } //encode key=value string $r .= implode(', ', $values); return $r; } function sendRequest($oauth, $baseURI) { $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $baseURI, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); curl_close($ch); var_dump($response); exit; return $response; } $baseURI = 'https://api.twitter.com/oauth/request_token'; $nonce = time(); $timestamp = time(); // $oauth_callback = "http://merlinleads.net/demo/twitter/callback"; $oauth_callback = "http://127.0.0.1/merlinleads/twitter/callback"; $oauth = array('oauth_callback' => $oauth_callback, 'oauth_consumer_key' => TWITTER_KEY, 'oauth_nonce' => $nonce, 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => $timestamp, 'oauth_version' => '1.0'); $consumerSecret = TWITTER_SECRET_KEY; $baseString = buildBaseString($baseURI, $oauth); $compositeKey = getCompositeKey($consumerSecret, null); $oauth_signature = base64_encode(hash_hmac('sha1', $baseString, $compositeKey, true)); $oauth['oauth_signature'] = $oauth_signature; $response = sendRequest($oauth, $baseURI); if (!$response) { return null; } $responseArray = array(); $parts = explode('&', $response); foreach ($parts as $p) { $p = explode('=', $p); $responseArray[$p[0]] = $p[1]; } $oauth_token = $responseArray['oauth_token']; $this->session->set_userdata('twitter_oauth_token', $oauth_token); return $oauth_token; }
//make the call curl_close($ch); //hang up //print_r($response); //exit; return $response; } //end sendRequest() //get request token $baseURI = 'https://api.twitter.com/oauth/request_token'; $nonce = time(); $timestamp = time(); $oauth = array('oauth_callback' => '', 'oauth_consumer_key' => '204uQ3bn1qIKWIGY0Krdw', 'oauth_nonce' => $nonce, 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => $timestamp, 'oauth_version' => '1.0'); $consumerSecret = 'WZjDcjXp2jdSzEKMZkDIQJVGOhNwnQDGn483t7OvI'; //put your actual consumer secret here, it will look something like 'MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98' $baseString = buildBaseString($baseURI, $oauth); //build the base string $compositeKey = getCompositeKey($consumerSecret, null); //first request, no request token yet $oauth_signature = base64_encode(hash_hmac('sha1', $baseString, $compositeKey, true)); //sign the base string $oauth['oauth_signature'] = $oauth_signature; //add the signature to our oauth array /*echo "<pre>"; print_r($oauth); echo "</pre>"; echo "<pre>"; print_r($baseURI); echo "</pre>";*/ $response = sendRequest($oauth, $baseURI);
} return $method . "&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r)); } function buildAuthorizationHeader($oauth) { $r = 'Authorization: OAuth '; $values = array(); foreach ($oauth as $key => $value) { $values[] = "{$key}=\"" . rawurlencode($value) . "\""; } $r .= implode(', ', $values); return $r; } // Set up the oauth Authorization array $oauth = array('oauth_consumer_key' => $config['consumer_key'], 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $config['oauth_access_token'], 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_info = buildBaseString($base_url, 'GET', array_merge($oauth, $url_arguments)); $composite_key = rawurlencode($config['consumer_secret']) . '&' . rawurlencode($config['oauth_access_token_secret']); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // Make Requests $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => str_replace(' ', '%20', $full_url), CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $result = curl_exec($feed); $info = curl_getinfo($feed); curl_close($feed); // Send suitable headers to the end user. if (isset($info['content_type']) && isset($info['size_download'])) { header('Content-Type: ' . $info['content_type']); header('Content-Length: ' . $info['size_download']);
public function tweetAction() { $general = $this->general(); function buildBaseString($baseURI, $method, $params) { $r = array(); ksort($params); foreach ($params as $key => $value) { $r[] = "{$key}=" . rawurlencode($value); } return $method . "&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r)); } function buildAuthorizationHeader($oauth) { $r = 'Authorization: OAuth '; $values = array(); foreach ($oauth as $key => $value) { $values[] = "{$key}=\"" . rawurlencode($value) . "\""; } $r .= implode(', ', $values); return $r; } $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; $oauth_access_token = $general->getTwitterOauthKey(); $oauth_access_token_secret = $general->getTwitterOauthSecret(); $consumer_key = $general->getTwitterKey(); $consumer_secret = $general->getTwitterSecret(); $oauth = array('oauth_consumer_key' => $consumer_key, 'oauth_nonce' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => $oauth_access_token, 'oauth_timestamp' => time(), 'oauth_version' => '1.0'); $base_info = buildBaseString($url, 'GET', $oauth); $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); $oauth['oauth_signature'] = $oauth_signature; // Make requests $header = array(buildAuthorizationHeader($oauth), 'Expect:'); $options = array(CURLOPT_HTTPHEADER => $header, CURLOPT_HEADER => false, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false); $feed = curl_init(); curl_setopt_array($feed, $options); $json = curl_exec($feed); //die(print_r($json)); curl_close($feed); $twitter_data = json_decode($json); return $this->render('APPCoreBundle:pages' . $general->getTheme()->getId() . ':tweets.html.twig', array('tweets' => $twitter_data, 'general' => $general)); }