Сгенерируйте токен доступа в Bigcommerce

У меня возникла проблема при попытке сгенерировать токен доступа с помощью данных POST для https://login.bigcommerce.com/oauth2/token. Возникла ошибка исключения («Удаленный сервер вернул ошибку: (400) Неверный запрос».). Не знаю почему, но я уже прочитал документ по адресу https://developer.bigcommerce.com/apps/callback#token

Если я открою этот URL-адрес в любом веб-браузере. Пишет, что "страница, которую вы искали, не существует".

Не могли бы вы помочь мне с этим?

Спасибо, Трунг.


person user3331682    schedule 20.02.2014    source источник


Ответы (3)


Если вы получаете ответ 400 на запрос POST к https://login.bigcommerce.com/oauth2/token то это указывает на проблему с вашими данными. Наиболее вероятные причины:

Вы не включаете следующий заголовок в запрос POST:

Content-Type: application/x-www-form-urlencoded

Вы не кодируете данные POST в URL, как в следующем примере:

client_id=236754&client_secret=m1ng83993rsq3yxg&code=qr6h3thvbvag2ffq&scope=store_v2_orders&grant_type=authorization_code&redirect_uri=https%3A%2F%2Fapp.example.com%2Foauth%26context%3Dstores%2Fg5cd38&context=1stores%32Fabc

Также обратите внимание, что тело сообщения об ошибке, которое вы получаете, должно содержать дополнительные сведения об источнике проблемы.

Если вы подтвердили вышеуказанные пункты, возможно, попробуйте предоставить образец ваших данных POST или некоторую информацию о том, что вы делаете для URL-кодирования ваших данных. Убедитесь, что вы не указали свой фактический идентификатор клиента, секрет клиента или URI перенаправления.

person J Z    schedule 17.02.2015

Попробуйте использовать cURL

$data = array( "client_id" => "sdfgdfgdfkxddfgdfgdfdfgdfgddfgdfg2",
                    "client_secret" => "sdfgsdfgsdfgsdfgsdfgdf",
                    "redirect_uri" => "https://youapp.com/oauth",
                    "grant_type" => "authorization_code",
                    "code" => $_GET["code"], "scope" => $_REQUEST["scope"], "context" => $_GET["context"], );

    $postfields = http_build_query($data);

    $ch = curl_init();
    $url = "https://login.bigcommerce.com/oauth2/token";
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $output = curl_exec ($ch);
    curl_close ($ch);

$obj = json_decode($output);

var_dump($obj);
person Sergio Fernando Pivaral Portil    schedule 22.07.2014

Сначала вам нужно получить временный код авторизации, но отправив запрос GET на https://login.bigcommerce.com/oauth2/authorize с параметрами clientId, Scope, Context ("stores/{your_store_hash}") и redirect_url.

Только после этого вы можете изменить свой временный токен на постоянный (см. предыдущий пост).

Срок действия этого постоянного токена истекает через 30-60 дней, но я не знаю, как его автоматически обновить без действий пользователя. Если вы это знаете, напишите как.

person Pavel Andreev    schedule 14.02.2015