英語で「php mechanize」で検索掛けたらこのページが見つかった。
SimpleTest documentation for the scriptable web browser component
キーワード「SimpleTest」で検索して見つけた日本語のこのページも参考にして、greeにログインしてつぶやこうとしてみた。
<?php require_once('simpletest/browser.php'); $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 ID:20091016092926'); $browser->get('http://gree.jp/?action=login'); $browser->setField('user_mail','nanchara@ezweb.ne.jp'); $browser->setField('user_password','kantara'); $browser->clickSubmit('ログイン'); $browser->get('http://gree.jp/?action=home'); $browser->setFieldById('message','テストですよ'); $browser->clickSubmitById('update-action-send-button'); echo $browser->getContent(); ?>
ログインはできているが、そのあとの書きこみがうまくいっていない。レスポンスを見るとブラウザで表示されている画面のソースと違う。つぶやき部分がない。つぶやきは特定のブラウザの特定のバージョンでしか動作しないらしいので、どうやらブラウザの偽装に失敗しているっぽい。
レスポンスをローカルファイルに書き出してブラウザで開いてみると、Internet Explorerでログインした時の画面と同じ。上の推測は当たっているようだ。