У кого-нибудь есть API, работающий с браузерными снимками? - PullRequest
0 голосов
/ 17 сентября 2010

Я не могу заставить API xmlrpc работать со снимками браузера, это действительно раздражает. Первый способ $ method = 'nonces.challenge'; http://api.browsershots.org/xmlrpc/nonces.challenge/

Как я могу получить имя хоста, которое означает, что оно выглядит как раз против меня?

nonces.verifyUser говорит, что ему нужно 2 входа, и я использую

<code>$params = array();
$params[username] = 'username';
$params[encrypted_password] = 'password';


$request = xmlrpc_encode_request  ($method  ,  $params);
echo "<pre>";
print_r($request);
echo "
"; $ context = stream_context_create (array ('http' => array ( 'method' => "POST", 'header' => "Content-Type: text / xml", 'content' => $ request ))); echo "
";
print_r($context);
echo "
"; $ file = file_get_contents ($ browser_shots_url, false, $ context); print_r ($ файла);

И там написано, что мне не хватает одного. Куда я иду не так?

1 Ответ

2 голосов
/ 20 сентября 2010

Надеюсь, вы можете получить мой perl:

#!/usr/bin/perl
# Documentation at: http://api.browsershots.org/xmlrpc/
# Or through the system.listMethods and system.methodHelp <method> calls
use strict;
use warnings;
use RPC::XML;
use RPC::XML::Client;
use Data::Dumper;
use Digest::MD5 qw(md5_hex);
use Digest::SHA1 qw(sha1_hex);

my $cli = RPC::XML::Client->new('http://api.browsershots.org/xmlrpc/');

my $resp = $cli->send_request('nonces.challengeUser','USERNAME');
my $pw_hash;
if ($resp->{algorithm}->value eq "sha1") {
    $pw_hash = sha1_hex($resp->{salt}->value."PASSWORD");
} else {
    warn "md5 algorithm";
}
my $verify_string = md5_hex($pw_hash.$resp->{nonce}->value);
print "$verify_string\n";
my $login = $cli->send_request('nonces.verifyUser','USERNAME',$verify_string);
my $browsers = $cli->send_request('browsers.active');
$resp = $cli->send_request('nonces.challengeUser','USERNAME');
$pw_hash = sha1_hex($resp->{salt}->value."PASSWORD");
$verify_string = md5_hex($pw_hash.$resp->{nonce}->value);
my $screq = $cli->send_request('requests.submit','xssmirror',$verify_string,'http://www.domain.com','');
print Dumper($screq);

Вам понадобится платный аккаунт, чтобы получать скриншоты таким образом.

...