2. 注冊(cè)開(kāi)發(fā)人員訪問(wèn)

在StockX上登錄后,完成開(kāi)發(fā)人員注冊(cè)表單。我們將審核您的申請(qǐng),并在您的訪問(wèn)權(quán)限獲得批準(zhǔn)后向您發(fā)送電子郵件。

3. 驗(yàn)證您的API密鑰

當(dāng)您的帳戶獲得批準(zhǔn)后,系統(tǒng)將自動(dòng)為您生成一個(gè)API密鑰,您可以在“密鑰”頁(yè)面上檢索該密鑰。

接入

StockX Audience:用于訪問(wèn)StockX API服務(wù)。要訪問(wèn)任何StockX API服務(wù),如登錄或出價(jià),請(qǐng)確保您的受眾設(shè)置為gateway.stockx.com。

Auth Domain:要訪問(wèn)StockX auth服務(wù),身份驗(yàn)證端點(diǎn)的域是https://accounts.stockx.com。

作用域:StockX auth服務(wù)使用有效的OpenID Connect(OIDC)作用域?yàn)锳PI User應(yīng)用程序提供正確的訪問(wèn)級(jí)別。發(fā)送的作用域必須至少包含打開(kāi)的、OIDC驗(yàn)證用戶身份所需的以及接收刷新令牌所需的作用域;訪問(wèn)StockX所需的最小作用域是scope=offline_access openid


作為API用戶在StockX進(jìn)行身份驗(yàn)證

授權(quán)用戶

首先,您必須通過(guò)StockX IDP授權(quán)應(yīng)用程序和用戶。這是通過(guò)使用正確的憑據(jù)和授權(quán)將用戶發(fā)送到/authorize端點(diǎn)URL來(lái)完成的。

對(duì)于第一個(gè)authorize調(diào)用,響應(yīng)類(lèi)型將是code。狀態(tài)是一個(gè)不透明的值,將由API用戶定義,例如,

state = abcXYZ9876.GET https://accounts.stockx.com/authorize? response_type=code& client_id={APPLICATION_ID}& redirect_uri={APPLICATION_REDIRECT_URI}& scope=offline_access%20openid& audience=gateway.stockx.com& state={OPAQUE_STATE_VALUE}
參數(shù)名稱要求值描述
響應(yīng)類(lèi)型代碼表示返回的憑據(jù)類(lèi)型(codetoken)。
對(duì)于此流,該值必須為code
客戶端標(biāo)識(shí)Keys頁(yè)面上提供應(yīng)用程序的客戶端ID將在應(yīng)用程序創(chuàng)建后生成。
redirect_uri范例:
https://www.yourdomain.com/callback
用戶授予授權(quán)后,StockX auth服務(wù)將瀏覽器重定向到的URL。授權(quán)碼將在code URL參數(shù)中提供。您需要在應(yīng)用程序中提供此URL。
范圍offline_access openid
(空格為)
指定要為其請(qǐng)求授權(quán)的范圍,這決定了要返回哪些聲明(或用戶屬性)。
在StockX是scope=offline_access openid
觀眾gateway.stockx.comWeb應(yīng)用要訪問(wèn)的API的唯一標(biāo)識(shí)符。由StockX提供。
狀態(tài)用戶選擇的任何字符串API
示例:abcXYZ9876
您的應(yīng)用在重定向回您的應(yīng)用時(shí)向StockX auth服務(wù)包含的初始請(qǐng)求中添加的不透明任意字母數(shù)字字符串。我們建議API用戶使用此字符串來(lái)驗(yàn)證傳入的回調(diào)請(qǐng)求,以防止跨站點(diǎn)請(qǐng)求偽造(CSRF)攻擊。

登錄并接收授權(quán)碼

成功授權(quán)您的應(yīng)用程序后,將顯示StockX登錄頁(yè)面,您必須輸入API用戶帳戶的電子郵件和密碼。登錄成功后,響應(yīng)將是帶有URL的HTTP 302重定向。授權(quán)代碼位于回調(diào)URI的末尾。HTTP/1.1 302 Found Location: undefined?code=AUTHORIZATION_CODE&state=xyzABC123

URL中的code=AUTHORIZATION_CODE值,特別是AUTHORIZATION_CODE值,是您需要的值。您將在下一步中使用該代碼來(lái)獲取令牌。

注意:這是您需要實(shí)現(xiàn)以接收授權(quán)代碼的應(yīng)用程序端點(diǎn)。

交換一組令牌的授權(quán)代碼

既然您已經(jīng)收到授權(quán)代碼,您必須發(fā)布對(duì)/authorize的新調(diào)用以將代碼交換為令牌,并將上一步提取的授權(quán)代碼(代碼)添加到請(qǐng)求中。

下面你會(huì)發(fā)現(xiàn)一個(gè)調(diào)用/authorize進(jìn)行令牌交換的例子。請(qǐng)記住,響應(yīng)將為您提供一組令牌,其中一些令牌必須安全地存儲(chǔ)在您的一側(cè),因?yàn)樯院髮⑿枰鼈儊?lái)訪問(wèn)StockX API。

請(qǐng)求

curl --request POST \
--url 'https://accounts.stockx.com/oauth/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--data 'grant_type=authorization_code' \
--data 'client_id={YOUR_CLIENT_ID}' \
--data 'client_secret={YOUR_CLIENT_SECRET}' \
--data 'code={YOUR_AUTHORIZATION_CODE}' \
--data 'redirect_uri={YOUR_CALLBACK_URI}'
參數(shù)名稱描述
贈(zèng)款類(lèi)型設(shè)置為authorization_code
客戶端標(biāo)識(shí)在應(yīng)用程序創(chuàng)建時(shí)生成
客戶端機(jī)密在應(yīng)用程序創(chuàng)建時(shí)生成
代碼步驟2中檢索到的authorization_code
redirect_uri在用戶授予授權(quán)后,StockX auth服務(wù)將瀏覽器重定向到的URL。authorization_code將在代碼URL參數(shù)中可用。

響應(yīng)

如果您能夠成功地將代碼交換為令牌,您將收到一個(gè)包含access_token、refresh_token、id_tokentoken_type的有效負(fù)載的響應(yīng)。請(qǐng)參見(jiàn)下面的負(fù)載響應(yīng)示例。

{
"access_token": "eyJz93a...k4laUWw",
"refresh_token": "GEbRxBN...edjnXbL",
"id_token": "eyJ0XAi...4faeEoQ",
"token_type": "Bearer"
}
應(yīng)用程序設(shè)置

以下指南說(shuō)明如何創(chuàng)建、更新和刪除新應(yīng)用程序。該應(yīng)用程序提供實(shí)現(xiàn)授權(quán)流所需的客戶端ID和客戶端密碼。

注意:目前StockX支持每個(gè)StockX帳戶一個(gè)應(yīng)用程序

要執(zhí)行此操作,請(qǐng)轉(zhuǎn)到應(yīng)用程序,然后單擊創(chuàng)建應(yīng)用程序按鈕以打開(kāi)以下對(duì)話框:

Create an app

輸入應(yīng)用程序的名稱、描述和所選的回調(diào)URI,然后單擊CREATE。您的應(yīng)用程序現(xiàn)在已創(chuàng)建并注冊(cè),您將在應(yīng)用程序頁(yè)面上看到新創(chuàng)建的應(yīng)用程序。

回調(diào)URI使StockX身份驗(yàn)證服務(wù)能夠在用戶每次登錄時(shí)自動(dòng)調(diào)用應(yīng)用程序。


應(yīng)用頁(yè)面
Pauls app

“應(yīng)用程序”頁(yè)提供以下信息:

您可以通過(guò)單擊EDIT按鈕來(lái)更新應(yīng)用程序,也可以通過(guò)單擊紅色的刪除按鈕來(lái)刪除應(yīng)用程序。


調(diào)用StockX API

從前面的步驟中獲得access_token后,就可以開(kāi)始進(jìn)行API調(diào)用了。訪問(wèn)令牌必須作為不記名令牌添加到您的標(biāo)頭請(qǐng)求中,即,Bearer在前面。

生產(chǎn)API URL:api.stockx.com

授權(quán):承載者{ACCESS_TOKEN}

x-api-key:{api-key}

下面顯示了一個(gè)帶有承載令牌的頭部的CURL示例

curl --location --request GET
'https://{baseUrl}/{version}/{endpoint} \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {api-key}'
Header名稱描述
baseUrlStockX API URL , 例如 :api.stockx.com
版本StockX API版本,例如v1
授權(quán)將此設(shè)置為`Beareraccess_token
x-api-key在開(kāi)發(fā)人員訪問(wèn)批準(zhǔn)后自動(dòng)生成,位于密鑰頁(yè)面中

注意事項(xiàng):請(qǐng)注意,access_token的有效期為12小時(shí),之后您需要請(qǐng)求新的access_token,您可以通過(guò)下面概述的refresh_token步驟來(lái)完成。

刷新令牌

作為StockX API用戶,一旦使用不記名令牌對(duì)StockX受眾進(jìn)行調(diào)用,該令牌將被驗(yàn)證。如果access_token不再有效,它將返回一個(gè)HTTP 401,你需要更新你的access_token。

要更新access_token,您需要refresh_token。refresh_token是IDP(身份提供者)使用的特殊令牌,允許您在身份驗(yàn)證期間收到的令牌不再有效時(shí)請(qǐng)求新的access_tokenrefresh_token在登錄后返回,并且具有較長(zhǎng)的生命周期,只要您的會(huì)話有效,交換令牌就有效,因此當(dāng)您調(diào)用交換令牌時(shí),您將收到新的access_token而不是新的refresh_token,因?yàn)樗鼈兣c您的會(huì)話一起長(zhǎng)期存在。

為了獲得刷新令牌,您必須使用/oauth/token調(diào)用grant_type=refresh_token。要將刷新令牌交換為訪問(wèn)令牌,您必須進(jìn)行相同的調(diào)用。只有在您已經(jīng)撥打了/authorize電話之后,才能撥打電話。交換refresh_token或新access_token的示例請(qǐng)求和響應(yīng)如下所示:

curl --location --request POST \
--url 'https://accounts.stockx.com/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'client_id={YOUR_CLIENT_ID}' \
--data-urlencode 'client_secret={YOUR_CLIENT_SECRET}' \
--data-urlencode 'audience=gateway.stockx.com' \
--data-urlencode 'refresh_token={YOUR_REFRESH_TOKEN}'
參數(shù)名稱描述
贈(zèng)款類(lèi)型設(shè)置為authorization_code
客戶端標(biāo)識(shí)在應(yīng)用程序創(chuàng)建時(shí)生成
客戶端機(jī)密在應(yīng)用程序創(chuàng)建時(shí)生成
觀眾設(shè)置為authorization_code
刷新令牌刷新令牌
{
"access_token": "ey....",
"expires_in": 43200,
"id_token": "ey....",
"scope": "openid email offline_access",
"token_type": "Bearer"
}

4. 示例代碼片段

"use strict";

/*
* Do not commit your client ID, secret, or domain to your codebase. These
* are here for the sake of convenience and should never be in your
* version control system.
* */

const AUTH0_CLIENT_ID = "";
const AUTH0_DOMAIN = "";
const AUTH0_CLIENT_SECRET = "";

/*
* This callback URL is where you will be redirected to after you have
* logged in. This is the URL you provided to StockX.
* */

const CALLBACK_URL = "";

/* This redirect URI is where you will be redirected to after the
* authorization code exchange for the access token.
* */

const REDIRECT_URI = "";

/*
* The unique identifier of the API your web app wants to access. This is provided by StockX.
*/
const AUTH0_AUDIENCE = "urn:gateway.stockx.com";

const GRANT_TYPE = "authorization_code";
const ACCESS_TOKEN_URL = https://${AUTH0_DOMAIN}/oauth/token; const PORT = 8000; const Auth0Strategy = require("passport-auth0"); const axios = require("axios"); const express = require("express"); const expressSession = require("express-session"); const passport = require("passport"); const session = { /* * This secret isn’t used by Auth0, but rather by the Express session. * It signs the session cookie ID. * */ secret: "SESSION COOKIE ID SIGNER: ADD YOUR OWN", cookie: {}, resave: false, saveUninitialized: false, }; const app = express(); app.use(expressSession(session)); const strategy = new Auth0Strategy( { domain: AUTH0_DOMAIN, clientID: AUTH0_CLIENT_ID, clientSecret: AUTH0_CLIENT_SECRET, callbackURL: CALLBACK_URL, }, (_, __, ___, profile, done) => done(null, profile) ); passport.use(strategy); app.use(passport.initialize()); app.use(passport.session()); const router = express.Router(); const authMiddleware = passport.authenticate("auth0", { scope: "openid email profile", audience: AUTH0_AUDIENCE }); router.get("/login", authMiddleware, (_, res) => res.redirect("/")); /* * This is where the magic happens. When Auth0 redirects you to the * callback, it does so with an authorization code. That authorization code * can be exchanged for an access token. The access token is what you will * use to gain access to StockX's public API. * */ router.get("/callback", async (req, res) => { try { const { data } = await axios.post(ACCESS_TOKEN_URL, { grant_type: GRANT_TYPE, client_id: AUTH0_CLIENT_ID, client_secret: AUTH0_CLIENT_SECRET, redirect_uri: REDIRECT_URI, code: req.query.code, }); return res.status(200).json(data); } catch (err) { return res.send(err.toString()).status(500); } }); router.get("/", (_, res) => res.send("Sample homepage. To login, navigate your browser to localhost:8000/login.").status(200) ); app.use("/", router); app.listen(PORT, () => { console.log(Listening to requests on http://localhost:${PORT}); });

5. 常見(jiàn)問(wèn)題

Q:如何找到StockX API

A:冪簡(jiǎn)集成是國(guó)內(nèi)領(lǐng)先的API集成管理平臺(tái),專(zhuān)注于為開(kāi)發(fā)者提供全面、高效、易用的API集成解決方案。冪簡(jiǎn)API平臺(tái)可以通過(guò)以下兩種方式找到所需API:通過(guò)關(guān)鍵詞搜索API(例如,輸入’StockX API‘這類(lèi)品類(lèi)詞,更容易找到結(jié)果)、或者從API hub分類(lèi)頁(yè)進(jìn)入尋找。

Q:什么是StockX?
A:StockX是世界上最大的文化市場(chǎng)。我們的使念是以最智能的方式提供世界上最令人垂涎的物品。購(gòu)買(mǎi)和出售最熱門(mén)的運(yùn)動(dòng)鞋,服裝,電子產(chǎn)品,收藏品,交易卡和配件。

Q:如何開(kāi)始使用StockX API平臺(tái)?
A:創(chuàng)建一個(gè)StockX帳戶并請(qǐng)求開(kāi)發(fā)人員訪問(wèn)權(quán)限。新用戶需要驗(yàn)證他們的電子郵件地址才能訪問(wèn)該平臺(tái)。專(zhuān)業(yè)提示,請(qǐng)確保您添加一個(gè)有效的付款方式到您的帳戶。有關(guān)更多信息,請(qǐng)查看我們的-入門(mén) 頁(yè).

Q:StockX如何處理身份驗(yàn)證?
A:到目前為止,StockX不支持每個(gè)API鍵有多個(gè)應(yīng)用程序。但是,多個(gè)StockX帳戶可以訪問(wèn)一個(gè)應(yīng)用程序。

Q:我的訪問(wèn)令牌過(guò)期了,我該怎么辦?
A:請(qǐng)注意,訪問(wèn)令牌的有效期為12小時(shí),之后您需要申請(qǐng)新的訪問(wèn)令牌。詳細(xì)了解我們?nèi)绾卧谖覀兊腳認(rèn)證 頁(yè).

Q:StockX是否支持多個(gè)應(yīng)用程序?

A:到目前為止,StockX不支持每個(gè)API鍵有多個(gè)應(yīng)用程序。但是,多個(gè)StockX帳戶可以訪問(wèn)一個(gè)應(yīng)用程序。

Q:StockX API的替代品有哪些?

提供AI大模型API的服務(wù)商除了StockX API,還有其他替代服務(wù)商也提供類(lèi)似api服務(wù),例如:

亞馬遜 API開(kāi)放平臺(tái)、Shop API開(kāi)放平臺(tái)、Charm API開(kāi)放平臺(tái)

更多競(jìng)品可以在冪簡(jiǎn)集成開(kāi)放平臺(tái)中找到。

Q:StockX API這個(gè)密鑰還適用于哪些api?

創(chuàng)建新列表、獲取所有列表、激活列表

7.  總結(jié)

本文詳細(xì)闡述了獲取StockX API密鑰的全過(guò)程,為開(kāi)發(fā)者提供了清晰的分步指南。從StockX API注冊(cè)賬號(hào)開(kāi)始,通過(guò)完成開(kāi)發(fā)者認(rèn)證,到最終獲取API服務(wù)密鑰,每一步都進(jìn)行了詳盡的說(shuō)明。此外,文章還強(qiáng)調(diào)了獲取密鑰后進(jìn)行可用性測(cè)試的重要性,確保開(kāi)發(fā)者能夠順利地將API集成到應(yīng)用中。本文為開(kāi)發(fā)者提供了一個(gè)全面、實(shí)用的指南,幫助他們順利獲取StockX API密鑰,并有效地將這一能力集成到應(yīng)用中,從而提升應(yīng)用的交互性和功能性。

上一篇:

如何獲取GroqCloud API Key 密鑰(分步指南)

下一篇:

如何獲取Mistral AI API Key 密鑰(分步指南)
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)