2016-07-24 13 views
0

Guzzleを使用してAmazonでログインしようとしていますが、運が悪いわけではありません。ここに私のコードです:。私はそれ$response->getBody()->getContents()の応答を取得すると、正常にlogedときGuzzleを使用してAmazonにログインする方法PHP

$client = new \GuzzleHttp\Client(['cookies' => true]); 

$response = $client->request('POST', 'https://www.amazon.com/gp/sign-in.html', [ 
    'form_params' => [ 
     'ap_email' => "[email protected]", 
     'ap_password' => "12345678" 
    ] 
]); 

はそれがログインページにないリダイレクトされたページを返すことがGoutteのように、ウェブスクラッパーを使用することをお勧めしますあなたの場合は

+2

多くのウェブサイトでは、ログインページ以外のどこからでもフォーム、特にログインフォームへの投稿ができません。 [CSRFトークン](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Prevention)を参照してください。おそらく、この方法でAmazonとやりとりすることはできません。あなたの目標は何ですか? – Chris

+0

@Chrisご意見ありがとうございます。私はAmazonにログインして、レビューアから電子メールを受け取ることができます(アマゾンは最初にログインして電子メールを見ることを要求しています) – robot11

+0

Amazonはあまりにも多くのことをチェックしています。例:appActionToken、appAction、openid.pape.max_auth_age、openid.return_to、metadata1、..... –

答えて

1

。ブラウザでユーザーをエミュレートするので、(CSRF保護やその他の隠しフィールドなど)多くのことを心配する必要はありません。

Guzzleと一緒にドライバとして使用できますが、一部のサイトでJavaScriptが必要な場合があります(Amazonについてはわかりません)。その後、実際のブラウザやPhantomJS(ヘッドレスChromeの一種)に行く必要があります。

関連する問題