![](/img/trans.png)
[英]Google OAuth2.0 returns 'invalid_request' when getting access_token with PHP cURL
[英]PHP Curl Basic OAuth Getting Access Token
我試圖從印度市場 Flipkart 提供的 API 獲取訪問令牌,如果我在 Putty SSH 中運行 curl 代碼,我能夠收到訪問令牌,但是如果我從 PHP 嘗試同樣的事情,它會給我 400 錯誤.
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 Curl(我只在網上學習)實現同樣的事情時,我得到 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;
?>
沒有其他 output 而不是 400(狀態代碼),這是錯誤的請求。
我知道我很接近,我不知道我做錯了什么。 任何幫助,將不勝感激。
PS:您可以在此處找到 API 文檔https://seller.flipkart.com/api-docs/FMSAPI.html#third-party-application-integration
我終於能夠解決這個問題,當我們嘗試使用 php curl 做同樣的事情時,他們在他們的文檔中提到的 url 不起作用。
在 php 的情況下,Url 的措辭是不同的
所以 URL 應該是 $url=' https://api.flipkart.net/oauth-service/oauth/token?grant_type=client_credentials&scope=Seller_Api ';
瞧,我得到了我的訪問令牌。
PS:請不要以為我不耐煩並在環顧四周之前問得太早了,這是我第二天與同樣的問題作斗爭。 但我今天很幸運;)
為什么有些斜線是朝后的?
“?” 意味着后面是參數(可以說是變量)及其日期。
在您的 URL 上傳遞多個參數(可以說是變量)時使用“&”。
在您的情況下,您的參數或 URL 變量是:grant_type 和 scope
這些參數的數據或值分別是 client_credentials 和 Seller_Api。
您可以使用“=”符號為參數賦值。
摘要:-了解您的網址: https ://api.flipkart.net/oauth-service/oauth/token-了解您的參數並為其賦值:-Parameter 1:grant_type=client_credentials -Parameter 2:scope=Seller_Api -Join ULR這個參數使用“?” - https://api.flipkart.net/oauth-service/oauth/token?grant_type=client_credentials還有其他參數嗎? 也使用“&”加入它 - https://api.flipkart.net/oauth-service/oauth/token?grant_type=client_credentials&scope=Seller_Api
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.