2014-02-20 168 views

回答

0

嘗試尤斯捲曲

$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); 
0

首先,你需要獲得臨時授權碼,但發送GET請求來https://login.bigcommerce.com/oauth2/authorize帶參數的clientId,適用範圍,上下文(「專賣店/ { your_store_hash}「)和redirect_url。

只有在此之後,您才能將臨時令牌更改爲永久令牌(請參閱上一篇帖子)。

這個永久性令牌在30-60天內過期,但我不知道如何在沒有用戶操作的情況下自動更新它。如果你知道,請寫下如何。

1

如果您收到的POST請求的回覆爲https://login.bigcommerce.com/oauth2/token,則表明您的數據存在問題。最有可能的原因是:

您還沒有包括在你的POST請求以下標題:

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

你是不是URL編碼的POST數據,如下面的例子:

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=stores%2Fabc123

另請注意,您收到的錯誤響應消息正文應包含有關該問題源的更多詳細信息。

如果您已確認以上幾點,那麼可以嘗試給出您的POST數據樣本或關於您對網址進行URL編碼的一些信息。確保不要包含您的實際客戶端ID,客戶端密鑰或重定向URI。