Как я могу войти в Amazon с помощью PHP cURL


Мне нужно войти на страницу Amazon: https://sellercentral-japan.amazon.com/gp/sign-in/sign-in.html/ref=pt_login_lgin_login с PHP cURL (без веб-сервиса Amazon).

Вот код, как я пытался это сделать:

const AMAZON_LOGIN_URL = "https://sellercentral-japan.amazon.com/gp/sign-in/sign-in.html/ref=pt_login_lgin_login";

$this->crawler = new crawler();        
// login with Amazon account
$parameters ='protocol=https&action=sign-in&email='.self::AMAZON_USER.'&password='.self::AMAZON_PWD;
$status = $this->crawler->logIn(self::AMAZON_LOGIN_URL, $parameters);

/* in crawler class */
//This is used for login.
function logIn($loginActionUrl, $parameters) {
    $strCookie = 'D:\public_html\project\cookie.txt';

    curl_setopt($this->curl, CURLOPT_URL, $loginActionUrl);
    curl_setopt($this->curl, CURLOPT_POST, 1);
    curl_setopt($this->curl, CURLOPT_POSTFIELDS, $parameters);

    curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($this->curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($this->curl, CURLOPT_HEADER, 0);

    curl_setopt($this->curl, CURLOPT_COOKIEJAR, $strCookie);
    curl_setopt($this->curl, CURLOPT_COOKIEFILE, $strCookie);

    $content = curl_exec($this->curl);
    return $content;
}

В качестве ответа я получаю страницу входа с сообщением об ошибке: "Ваш сеанс входа истек. Пожалуйста, войдите еще раз". И это сообщение также отображается:

"Не найдено

Запрошенный URL-адрес/aan/2009-09-09/static/amazon/iframeproxy-12.html был не найден на этом сервере".

Я перепробовал большинство решений, найденных в Интернете. Это решение было обнадеживающим, но все еще не работающим: Проблема PHP Curl - Cookies Я изменил необходимый URL-адрес страницы входа в систему и внес несколько других изменений, но это приводит к следующей ошибке:

"При попытке выполнить эту операцию произошла ошибка. Пожалуйста, повторите попытку через 15 минут". даже через 15 минут он выдает ту же ошибку.

Если кто-нибудь может помочь, это будет помощь.

Спасибо.

Author: Community, 2012-06-16

2 answers

Просто для пометки в качестве ответа:
вам нужно 2 вещи:

  1. Запросить страницу входа с сервера с помощью метода get
  2. Отправка данных для входа с использованием новой сессии и со скрытыми входными данными

Чтобы просмотреть сценарий: https://stackoverflow.com/a/7532730/889678

 4
Author: undone, 2017-05-23 11:51:05

Используйте их официальный API Curl... Смотрите пример php здесь http://login.amazon.com/website

 0
Author: giorgio79, 2014-06-25 04:18:48