Holaaaa
Bueno, después de mantener el código en secreto xD no he podido más por que este no funciona. El problema se causa en el
upload de archivos a MediaFire el cual definitivamente no consigo realizar. También existe un problema muy grave con SHA1 obligándome así a tener que pedirle al usuario calcular el SHA1 de la firma porque la salida del SHA1 proporcionado por Digest::SHA1 no es comprensible para realizar la petición.
Para calcular manualmente el SHA1:Si ejecutáis el programa debéis introducir un SHA1. Ese SHA1 para construirlo tendréis que ir por el momento a un enlace externo: http://www.sha1-online.com/ y desde ahí colocar vuestro
correo (de cuenta de MediaFire),
contraseña,
api_key, y
application_id, sin espacios -juntos- y generar el sha1. La
api_key y
app_id están en el código, pero por si acaso, aquí están:
api key=32063
app_id=5606dudsfa60xy0f7p60oac7b31tpi8bethde701
Así pues para generar el sha1 sería algo así:
[email protected]ñaelnumerodelaapikeyelnumerodelaappidSin embargo, el problema más grave viene a ser en el
upload de archivos ya que no consigo que suba el archivo.
Este es el código actual que tengo:
Using perl Syntax Highlighting
#Fist test version of perl to access into our MediaFire accounts.
#by n3td1srupt
#Twitter-->@n3td1srupt
use Data::Dumper;
use XML::Simple;
use HTTP::Request::Common qw(POST);
use LWP::Simple;
use LWP::UserAgent;
use Crypt::SSLeay;
#URLS TO ACCESS TO SOME FUNCTIONS INTO THE API OF MEDIAFIRE
#######################################################################################
@url_session_token=qw(https://www.mediafire.com/api/user/get_session_token.php? email= email &password= pass &application_id= app_id &signature= signature);
@url_login_token=qw(https://www.mediafire.com/api/user/get_login_token.php? email= email &password= pass &application_id= app_id &signature= signature);
$url_login=' http://www.mediafire.com/api/user/login_with_token.php?login_token=';
########################################################################################
#MEDIAFIRE ACCOUNT DATA PROVIDED BY USER
###################################################
print "Email of your MediaFire account\n";
$email=<STDIN>;
chop $email;
print "Input your password\n";
$pass=<STDIN>;
chop $pass;
print "Input the SHA1 signature\n";
$signature=<STDIN>;
###################################################
#KEYS AND SIGNATURES(SHA1 YET NOT IMPLEMENTED IN THE SCRIPT) REQUESTED BY THE API
###############################################################
$app_id='32063';
$api_key='5606dudsfa60xy0f7p60oac7b31tpi8bethde701';
###############################################################
#SOME HTTP REQUESTS AND RESPONSES TO MANIPULATE MEDIAFIRE ACCOUNT
#####################################################################################################
#SESSION TOKEN
$url_session_token[2]=$email;
$url_session_token[4]=$pass;
$url_session_token[6]=$app_id;
$url_session_token[8]=$signature;
$construct_url_session_token=join("",@url_session_token);
print "$construct_url_session_token";
$request_xml_session_token=getstore("$construct_url_session_token",'mediafire-response.xml');
print $request_xml_session_token;
$xml_session_token=new XML::Simple;
$get_xml_session_token=$xml_session_token->XMLin('mediafire-response.xml');
$session_token="$get_xml_session_token->{session_token}";
######################################################################################################
#LOGIN TOKEN
######################################################################################################
$url_login_token[2]=$email;
$url_login_token[4]=$pass;
$url_login_token[6]=$app_id;
$url_login_token[8]=$signature;
$construct_url_login_token=join("",@url_login_token);
$request_xml_login_token=getstore("$construct_url_login_token",'mediafire-response2.xml');
$xml_login_token=new XML::Simple;
$get_xml_login_token=$xml_login_token->XMLin("mediafire-response2.xml");
$login_token="$get_xml_login_token->{login_token}";
#MEDIAFIRE LOGIN
#################################################
$mediafire_login="$url_login$login_token";
#MEDIAFIRE UPLOAD FILE
print "Input the name of the file\n";
$mediafire_upload_file_name=<STDIN>;
print "Input the FILE PATH you want to upload\n";
$mediafire_file_upload=<STDIN>;
$mediafire_file_upload_send=LWP::UserAgent->new;
$mediafire_file_upload_send->request(
POST "http://www.mediafire.com/api/upload/upload.php?",
x-filename=>"$mediafire_upload_file_name",
x-filesize=> -s "$mediafire_file_upload",
Content=> [ File => ["$mediafire_file_upload"] ],
);
Coloreado en 0.004 segundos, usando
GeSHi 1.0.8.4
Este es otra variante a este mismo (solo cambian las últimas líneas)
Using perl Syntax Highlighting
#Fist test version of perl to access into our MediaFire accounts.
#by n3td1srupt
#Twitter-->@n3td1srupt
use Data::Dumper;
use XML::Simple;
use HTTP::Request::Common qw(POST);
use LWP::Simple;
use LWP::UserAgent;
use Crypt::SSLeay;
use Digest::SHA1 qw(sha1 sha1_hex sha1_base64 sha1_transform);
#URLS TO ACCESS TO SOME FUNCTIONS INTO THE API OF MEDIAFIRE
#######################################################################################
@url_session_token=qw(https://www.mediafire.com/api/user/get_session_token.php? email= email &password= pass &application_id= app_id &signature= signature);
@url_login_token=qw(https://www.mediafire.com/api/user/get_login_token.php? email= email &password= pass &application_id= app_id &signature= signature);
$url_login=' http://www.mediafire.com/api/user/login_with_token.php?login_token=';
########################################################################################
#MEDIAFIRE ACCOUNT DATA PROVIDED BY USER
###################################################
print "Email of your MediaFire account\n";
$email=<STDIN>;
chop $email;
print "Input your password\n";
$pass=<STDIN>;
chop $pass;
print "Input the SHA1 signature\n";
$signature=<STDIN>;
###################################################
#KEYS AND SIGNATURES(SHA1 YET NOT IMPLEMENTED IN THE SCRIPT) REQUESTED BY THE API
###############################################################
$app_id='32063';
$api_key='5606dudsfa60xy0f7p60oac7b31tpi8bethde701';
###############################################################
#SOME HTTP REQUESTS AND RESPONSES TO MANIPULATE MEDIAFIRE ACCOUNT
#####################################################################################################
#SESSION TOKEN
$url_session_token[2]=$email;
$url_session_token[4]=$pass;
$url_session_token[6]=$app_id;
$url_session_token[8]=$signature;
$construct_url_session_token=join("",@url_session_token);
print "$construct_url_session_token";
$request_xml_session_token=getstore("$construct_url_session_token",'mediafire-response.xml');
print $request_xml_session_token;
$xml_session_token=new XML::Simple;
$get_xml_session_token=$xml_session_token->XMLin('mediafire-response.xml');
$session_token="$get_xml_session_token->{session_token}";
######################################################################################################
#LOGIN TOKEN
######################################################################################################
$url_login_token[2]=$email;
$url_login_token[4]=$pass;
$url_login_token[6]=$app_id;
$url_login_token[8]=$signature;
$construct_url_login_token=join("",@url_login_token);
$request_xml_login_token=getstore("$construct_url_login_token",'mediafire-response2.xml');
$xml_login_token=new XML::Simple;
$get_xml_login_token=$xml_login_token->XMLin("mediafire-response2.xml");
$login_token="$get_xml_login_token->{login_token}";
#MEDIAFIRE LOGIN
#################################################
$mediafire_login="$url_login$login_token";
#MEDIAFIRE UPLOAD FILE
print "Input the FILE PATH you want to upload\n";
$mediafire_file_upload=<STDIN>;
chop $mediafire_file_upload;
$mediafire_file_upload_send=LWP::UserAgent->new;
$mediafire_file_upload_send->request(
POST 'http://www.mediafire.com/api/upload/upload.php?',
Content_Type=>'form-data',
Content=>
[ undef,$mediafire_file_upload,'x-filename'=>$mediafire_file_upload],
);
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
¿Qué opináis?
Muchas Gracias y Salu2