因爲我試圖自動化谷歌結帳銷售訂單報告(爲了跟蹤我們的andriod應用程序銷售之一),我試圖通過一個簡單的perl腳本(使用機械化)實現這一點。谷歌結帳報告通過HTTP認證下載
下面是步驟我下面:我的谷歌Checkout訂單收件箱
- :https://checkout.google.com/cws/v2/AndroidMarket-1011/305286585299619/reportsForm?_type=order-list-request&column-style=&date-time-zone=America%2FLos_Angeles&end-date=2012-05-30&query-type=&start-date=2012-05-29,登錄後我想利用這些參數和值,而我正在自動執行這個腳本。我將動態傳遞這些值。就時間而言,我已經對它進行了硬編碼。
- 將auth和SID令牌與標頭一起傳遞
- 讀取響應並將其存儲在CSV文件中。
注意:我的Google結帳帳戶沒有商家密鑰功能,因爲它是傳統帳戶。所以,我無法使用API下載報告。
下面是我使用Perl腳本..
#!/usr/bin/perl -w
use CGI;
use CGI::Carp;
use CGI qw'standard';
use strict;
use LWP::UserAgent;
use WWW::Mechanize;
use HTTP::Cookies;
print "Content-type: text/html \n\n";
my $url = 'https://www.google.com/accounts/ServiceLogin';
my $username = '[email protected]';
my $password = "123456";
my $cookie_jar = HTTP::Cookies->new(file => 'cookies', autosave => 1, ignore_discard => 1);
my $mech = WWW::Mechanize->new(cookie_jar => $cookie_jar, autocheck => 0);
$mech->get($url);
$mech->form_id('gaia_loginform');
$mech->field(Email => $username);
$mech->field(Passwd => $password);
$mech->submit();
$cookie_jar->save;
# Go to the Google checkout orer inbox
$url = 'https://checkout.google.com/sell/orders';
$mech->get($url);
print $mech->content();
#Retain the cookie through out the page
$cookie_jar->load;
print "This request is valid.";
$mech->form_name('dateInput');
$mech->field('start-date','2012-05-30');
$mech->field('end-date','2012-06-01');
$mech->field('date-time-zone','America/Los_Angeles');
$mech->field('_type','order-list-request');
$cookie_jar->load;
my $results = $mech->submit();
my $response = $mech->res();
my $filename = $response->filename;
if (! open (FOUT, ">$filename")) {
die("Could not create file: $!");
}
print(FOUT $m->response->content());
close(FOUT);
print $results->content();
下面是結果..
腳本說: 「HTTP錯誤400:錯誤的請求」。據我瞭解,我發送的URL格式不會產生我想要的輸出以及提示錯誤。
只是想知道,是否有任何工作已經到位,通過HTTP調用和查詢字符串傳遞,像我在腳本中做的那樣,因爲沒有商家密鑰可用於我的帳戶。
謝謝 - 期待收到您的來信。感謝你的幫助 !