簡體   English   中英

PHP Curl 基本 OAuth 獲取訪問令牌

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM