2016-07-22 20 views
1

我試圖從一個印度市場Flipkart所提供的API獲得訪問令牌,如果我跑在膩子SSH捲曲的代碼,我能夠接受一個訪問令牌,但如果我試圖來自PHP的同樣的事情,它給了我400錯誤。PHP捲曲基本的OAuth獲得訪問令牌

代碼中使用的SSH(這工作)

curl -u appid:appsecret https://api.flipkart.net/oauth-service/oauth/token\?grant_type\=client_credentials\&scope=Seller_Api 

我得到響應

{"access_token":"1111-xxxx-22222","token_type":"bearer","expires_in":4926731,"scope":"Seller_Api"} 

但是當我試圖實現使用PHP捲曲同樣的事情(這是我在網上只學會)我得到400錯誤

PHP代碼中使用(這一點兒也不工作)

<?php 
$username='appid'; 
$password='appsecret'; 
$url='https://api.flipkart.net/oauth-service/oauth/token\?grant_type\=client_credentials\&scope=Seller_Api'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
$output = curl_exec($ch); 
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code 
$info = curl_getinfo($ch); 
curl_close($ch); 

if(curl_errno($ch)){ 
    echo 'Curl error: ' . curl_error($ch); 
} 
print_r($output); 
echo $status_code; 
?> 

沒有其他輸出,而不是400(狀態碼),這是錯誤的請求。

我知道我靠近,我不知道我做錯了。 任何幫助,將不勝感激。

PS:你可以在這裏找到API文檔https://seller.flipkart.com/api-docs/FMSAPI.html#third-party-application-integration

+1

等待 - 你得到400或404錯誤?你的問題說,兩個 – WillardSolutions

+0

我的壞它只有一個400錯誤,我會糾正它。 –

+0

這一行 - >'curl_setopt($ curl,CURLOPT_FOLLOWLOCATION,true);'。使用'$ ch',而不是'$ curl' – WillardSolutions

回答

0

我終於能夠解決這個問題,他們在文檔中提到的網址,當我們嘗試使用PHP捲曲做同樣的事情不起作用。

URL的措詞是在PHP的

所以URL本來應該 $ URL = 'https://api.flipkart.net/oauth-service/oauth/token?grant_type=client_credentials&scope=Seller_Api' 情況不同;

,瞧,我得到了我的訪問令牌。

PS:請不要以爲我是個急性子,問環顧四周前太早的問題,這是我的第二天的戰鬥同樣的問題。但是今天我很幸運得到了;)