在Bigcommerce中生成访问令牌

时间:2014-02-20 07:57:11

标签: bigcommerce

尝试通过POST数据生成访问令牌时遇到问题https://login.bigcommerce.com/oauth2/token。存在异常错误('远程服务器返回错误:(400)错误请求。')。我不知道为什么,但我已经在https://developer.bigcommerce.com/apps/callback#token

阅读了该文件

如果我在任何网络浏览器上打开该网址。它说“你要找的页面不存在。”

你能帮帮我吗?

谢谢你, 忠

3 个答案:

答案 0 :(得分:1)

如果您对https://login.bigcommerce.com/oauth2/token的POST请求收到400响应,那表明您的数据存在问题。最可能的原因是:

您的POST请求中未包含以下标题:

  

内容类型:application / x-www-form-urlencoded

您不是对POST数据进行URL编码,例如以下示例:

  

的client_id = 236754&安培; client_secret = m1ng83993rsq3yxg&安培;代码= qr6h3thvbvag2ffq&安培;范围= store_v2_orders&安培; grant_type = authorization_code&安培; REDIRECT_URI = HTTPS%3A%2F%2Fapp.example.com%2Foauth%26context%3Dstores%2Fg5cd38&安培;上下文=商店%2Fabc123

另请注意,您收到的错误响应消息正文应该包含有关问题根源的更多详细信息。

如果您已经确认了以上几点,那么可以尝试提供一些POST数据样本或一些有关您对数据进行URL编码的信息。请确保不要包含您的实际客户端ID,客户端密码或重定向URI。

答案 1 :(得分:0)

尝试使用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);

答案 2 :(得分:0)

首先,您需要获取临时授权代码,但是使用参数clientId,Scope,Context(“stores / {your_store_hash}”)和redirect_url向https://login.bigcommerce.com/oauth2/authorize发送GET请求。

只有在此之后,您才能将临时令牌更改为永久令牌(请参阅上一篇文章)。

此永久令牌将在30-60天后到期,但我不知道如何在没有用户操作的情况下自动续订。如果您知道,请写下来。