Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- # Twitter Lib v2.0
- # M.S.I Angel Cantu Jauregui
- # angel.cantu@sie-group.net
- # Date Mar 5, 2012 10:44
- define( TWITTER_API_SERVER, "api.twitter.com" ); # servidor seguro api
- define( TWITTER_API_REQUEST_TOKEN, "/oauth/request_token" ); # servidor seguro api request token
- define( TWITTER_AUTENTICACION_URL, "/oauth/authenticate" ); # URL de autenticacion inicial
- define( TWITTER_API_AUTORIZACION, "/oauth/authorize" ); # servidor seguro api autorizacion
- define( TWITTER_API_ACCESS_TOKEN, "/oauth/access_token" ); # servidor seguro api access token
- # variables tu APP
- define( TWITTER_KEY, "MI_KEY" ); # tu key
- define( TWITTER_SECRET, "MI_SECRET" ); # key secret
- define( TWITTER_CALLBACK, "MI_URL_" ); # tu callback
- function rfc3986_encode($string)
- {
- $result = rawurlencode($string);
- $result = str_replace('%7E', '~', $result);
- $result = str_replace('=', '%3D', $result);
- $result = str_replace('+', '%2B', $result);
- return $result;
- }
- function twitter_geturl_loginout()
- {
- if( ! ($rqtoken= twitter_request_token()) ) # consultamos por una token
- echo '...Error';
- else print_r($rqtoken);
- }
- function twitter_get_nonce($tiempo)
- {
- return md5($tiempo); # md5s look nicer than numbers
- }
- function twitter_encodedata( $buf, $delimiter, $aux )
- {
- $data=''; # buffer
- foreach( $buf as $key=>$val ) # ciclo
- {
- if( $data )
- {
- $data .= $delimiter; # si tiene datos, ponemos delimitador
- if( $aux ) $data .= "\r\n";
- }
- $data .= $key. "=";
- if( $aux ) $data .= $val; # concatenamos
- else $data .= "\"". rfc3986_encode($val). "\"";
- }
- return $data; # retornamos
- }
- function twitter_get_signature( $data, $m )
- {
- if( !is_array($data) ) return 0;
- $buf= $m[0].'&'. rfc3986_encode( 'https://'. TWITTER_API_SERVER.$m[2]).'&'.twitter_encodedata($data, ',', 0); # obtiene string delimitada por comas y encodeada
- $keys= rfc3986_encode(TWITTER_SECRET). '&'. rfc3986_encode($m[1]);
- echo '<br><h1>Base String</h1><br>'. $buf;
- $crypt= base64_encode( hash_hmac( 'sha1', $buf, $keys, true ) );
- unset($buf, $keys);
- return $crypt;
- }
- # obtiene autenticacion para la APP primra vez
- function twitter_get_autenticacion()
- {
- $a= socket_iodata( TWITTER_API_SERVER, array( 'GET', TWITTER_AUTENTICACION_URL ), 443 );
- return $a;
- }
- # obtener una request token
- function twitter_request_token( $metodo )
- {
- $tiempo= time();
- $oauthmsg= array( "oauth_callback"=>"". TWITTER_CALLBACK. "",
- "oauth_consumer_key"=>"". TWITTER_KEY. "",
- "oauth_nonce"=>"". twitter_get_nonce($tiempo). "",
- "oauth_signature_method"=>"HMAC-SHA1",
- "oauth_timestamp"=>"". $tiempo. "",
- "oauth_version"=>"1.0" );
- $firma= twitter_get_signature($oauthmsg, array('POST', '', TWITTER_API_REQUEST_TOKEN) ); # creamos firma apartir de array
- if( !$firma )
- return 'Error: Generar Firma';
- $oauthmsg["oauth_signature"]="". $firma. "";
- if( !strcmp($metodo, "socket") ) # socket
- $rqtoken= socket_iodata( TWITTER_API_SERVER, array( 'POST', TWITTER_API_REQUEST_TOKEN, twitter_encodedata($oauthmsg, ',', 0), 'oauth' ), 443 );
- else $rqtoken= curl_iodata( TWITTER_API_SERVER, array( 'POST', TWITTER_API_REQUEST_TOKEN, twitter_encodedata($oauthmsg, ',', 0), 'oauth' ), 443 ); # curl
- unset($oauthmsg);
- #if( $rqtoken==-1 )
- # {
- # echo 'Error Socket Connection';
- # return 0;
- # }
- #else if( !$rqtoken )
- # {
- # echo 'Error No Data in Oauth Request: '. $rqtoken;
- # return 0;
- # }
- return $rqtoken;
- }
- # obtener una request token
- function twitter_access_token( $metodo )
- {
- $tiempo= time();
- $oauthmsg= array( "oauth_callback"=>"". TWITTER_CALLBACK. "",
- "oauth_consumer_key"=>"". TWITTER_KEY. "",
- "oauth_nonce"=>"". twitter_get_nonce($tiempo). "",
- "oauth_signature_method"=>"HMAC-SHA1",
- "oauth_timestamp"=>"". $tiempo. "",
- "oauth_version"=>"1.0" );
- #"x_auth_mode"=>"client_auth",
- #"x_auth_password"=>"twitter-xauth",
- #"x_auth_username"=>"oauth_test_exec" );
- #$post_data= array( "x_auth_mode"=>"client_auth",
- # "x_auth_password"=>"twitter-xauth",
- # "x_auth_username"=>"oauth_test_exec" );
- $firma= twitter_get_signature($oauthmsg, array('POST', '', TWITTER_API_ACCESS_TOKEN) ); # creamos firma apartir de array
- if( !$firma )
- return 'Error: Generar Firma';
- $oauthmsg["oauth_signature"]="". $firma. "";
- # twitter_encodedata($post_data, '&', 0)
- if( !strcmp($metodo, "socket") ) # socket
- $rqtoken= socket_iodata( TWITTER_API_SERVER, array( 'POST', TWITTER_API_ACCESS_TOKEN, twitter_encodedata($oauthmsg, ',', 1), 'oauth' ), 443 );
- else $rqtoken= curl_iodata( TWITTER_API_SERVER, array( 'POST', TWITTER_API_ACCESS_TOKEN, twitter_encodedata($oauthmsg, ',', 1), 'oauth' ), 443 ); # curl
- unset($oauthmsg);
- #if( $rqtoken==-1 )
- # {
- # echo 'Error Socket Connection';
- # return 0;
- # }
- #else if( !$rqtoken )
- # {
- # echo 'Error No Data in Oauth Request: '. $rqtoken;
- # return 0;
- # }
- return $rqtoken;
- }
- function twitter_boxsearch()
- {
- return '<script charset="utf-8" src="http://widgets.twimg.com/j/2/widget.js"></script>
- <script>
- new TWTR.Widget({
- version: 2,
- type: \'search\',
- search: \'turundus reynosa\',
- interval: 30000,
- title: \'Turunderos en...\',
- subject: \'Reynosa\',
- width: 175,
- height: 350,
- theme: {
- shell: {
- background: \'#8ec1da\',
- color: \'#ffffff\'
- },
- tweets: {
- background: \'#ffffff\',
- color: \'#444444\',
- links: \'#1985b5\'
- }
- },
- features: {
- scrollbar: true,
- loop: true,
- live: true,
- behavior: \'default\'
- }
- }).render().start();
- </script>';
- }
- ?>
Add Comment
Please, Sign In to add comment