guzzleでAipoにログインする

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を指定しておく