PHPのhttpクライアントguzzleでWebサービスにログインする | Hack
今回はguzzleでAipoにログインする方法をご紹介します。
$client = new \GuzzleHttp\Client([ 'base_uri' => '{AipoのURL}', 'timeout' => 30.0, 'cookies' => true ]); try { $response = $client->get('/'); $response = $client->post('/', [ 'form_params' => [ 'action' => 'ALJLoginUser', 'org' => 'org001', 'username' => {ログインID}, 'member_username' => {ログインID}, 'password' => {ログインパスワード}, ], 'headers' => [ 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36', ], ]); if(!strpos($response->getBody(), 'マイページ')){ //ログインに成功したかを確認 return false; } } catch (\GuzzleHttp\Exception\TransferException $e) { //例外処理 }
Aipoの場合は以下の点に注意する必要があります。
- 一旦getでアクセスしcookieを取得しておく
- actionパラメータにALJLoginUserをセットして送信
- ヘッダで何らかのUser-Agentを指定しておく