2011-04-12 7 views
0

私は私がFacebookアプリにアクセスしていますし、それを自動的にインストールすることもでき、このforum.Basicallyからアプリの情報にアクセスするためのスクリプトを見つけました。MechanizeのとFacebookアプリの

私は、私は、コードを次の許可ダイアログ・ページを取得するかどうかを確認しようとしたが、それは最初のページむしろ許可ページを返しません。何をすべきかFacebookの

は、複数のリダイレクトまたはメタであるか、他のいくつかの要求を送信し、その後、私はボタンを許可する]をクリックする必要が許可ページにユーザーランド。しかし、私は多くのアプリの最終許可ページを手に入れることができません。ここにコードがあります

use strict; 
use WWW::Mechanize; 
use HTTP::Cookies; 

my $url = "http://www.facebook.com"; 

my $appurl = "http://apps.facebook.com/funmoods/"; 

my $username = 'mail'; 
my $password = 'pass'; 

my $mech = WWW::Mechanize->new(); 
$mech->cookie_jar(HTTP::Cookies->new()); 
$mech->get($url); 
$mech->form_name('menubar_login'); 
$mech->field(email => $username); 
$mech->field(pass => $password); 
$mech->click(); 
my $facebook_content = $mech->content(); 
# go to an app url 
$mech->get($appurl); 
my $app_content = $mech->content(); 
print "$app_content\n"; 

機械化が最後に読み込まれたページにアクセスしない理由はわかりません。許可ページを読み込むのに時間がかかりましたが、機械化は常に最初のソースページを返します。どのように私はそれがすべてのページを読み込むまで待つために機械化を伝えることができますか?

私はあなたがLWPから継承されたprogressサブを使うべきだと思うおかげ

答えて

0

助けが必要:: UserAgentの

$ua->progress($status, $request_or_response) 

ドキュメントから:

これは 応答として頻繁に呼び出されますコンテンツがどのように処理されるかにかかわらず受信されます。 方法 を要求 メソッドが戻る前に$状態「終了」を要求し、 の処理 開始時に「始まり」$状態と呼ばれています。画分は が計算できない場合は、これらの $の状態の間では現在受信 応答または 文字列「ダニ」の一部となります。

$ statusが "begin"の場合、2番目の 引数が要求オブジェクトです。それ以外の場合は、応答オブジェクトです。