2024年您产品必备的10大AI API推荐
如何获取Stockx API密钥(分步指南)
在当今数字化交易日益盛行的时代,StockX API成为了连接买家与卖家、追踪潮流商品价格的得力助手。通过StockX API,开发者可以获取实时商品信息、价格变动以及交易数据,为用户带来前所未有的购物体验。本文将详细指导你如何获取StockX API的密钥,以便在你的应用或平台中集成这一强大的工具。通过一系列简单而明确的步骤,你将能够轻松获得访问权限。一旦获得API密钥,你就可以开始利用StockX的丰富数据,为用户提供实时、准确的潮流商品信息和交易服务。接下来,让我们一步步来操作吧。
1. 登录注册StockX
要使用StockX API,您需要一个StockX帐户。注册新帐户或使用现有账户登录。新用户需要验证他们的电子邮件地址。
2. 注册开发人员访问
在StockX上登录后,完成开发人员注册表单。我们将审核您的申请,并在您的访问权限获得批准后向您发送电子邮件。
3. 验证您的API密钥
当您的帐户获得批准后,系统将自动为您生成一个API密钥,您可以在“密钥”页面上检索该密钥。
接入
StockX Audience:用于访问StockX API服务。要访问任何StockX API服务,如登录或出价,请确保您的受众设置为gateway.stockx.com。
Auth Domain:要访问StockX auth服务,身份验证端点的域是https://accounts.stockx.com。
作用域:StockX auth服务使用有效的OpenID Connect(OIDC)作用域为API User应用程序提供正确的访问级别。发送的作用域必须至少包含打开的、OIDC验证用户身份所需的以及接收刷新令牌所需的作用域;访问StockX所需的最小作用域是scope=offline_access openid
作为API用户在StockX进行身份验证
授权用户
首先,您必须通过StockX IDP授权应用程序和用户。这是通过使用正确的凭据和授权将用户发送到/authorize
端点URL来完成的。
对于第一个authorize调用,响应类型将是code
。状态是一个不透明的值,将由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}
参数名称 | 要求值 | 描述 |
---|---|---|
响应类型 | 代码 | 表示返回的凭据类型(code 或token )。对于此流,该值必须为 code 。 |
客户端标识 | 在Keys页面上提供 | 应用程序的客户端ID将在应用程序创建后生成。 |
redirect_uri | 范例: https://www.yourdomain.com/callback | 用户授予授权后,StockX auth服务将浏览器重定向到的URL。授权码将在code URL参数中提供。您需要在应用程序中提供此URL。 |
范围 | offline_access openid (空格为) | 指定要为其请求授权的范围,这决定了要返回哪些声明(或用户属性)。 在StockX是 scope=offline_access openid |
观众 | gateway.stockx.com | Web应用要访问的API的唯一标识符。由StockX提供。 |
状态 | 用户选择的任何字符串API 示例:abcXYZ9876 | 您的应用在重定向回您的应用时向StockX auth服务包含的初始请求中添加的不透明任意字母数字字符串。我们建议API用户使用此字符串来验证传入的回调请求,以防止跨站点请求伪造(CSRF)攻击。 |
登录并接收授权码
成功授权您的应用程序后,将显示StockX登录页面,您必须输入API用户帐户的电子邮件和密码。登录成功后,响应将是带有URL的HTTP 302重定向。授权代码位于回调URI的末尾。HTTP/1.1 302 Found Location: undefined?code=AUTHORIZATION_CODE&state=xyzABC123
URL中的code=AUTHORIZATION_CODE
值,特别是AUTHORIZATION_CODE
值,是您需要的值。您将在下一步中使用该代码来获取令牌。
注意:这是您需要实现以接收授权代码的应用程序端点。
交换一组令牌的授权代码
既然您已经收到授权代码,您必须发布对/authorize
的新调用以将代码交换为令牌,并将上一步提取的授权代码(代码)添加到请求中。
下面你会发现一个调用/authorize
进行令牌交换的例子。请记住,响应将为您提供一组令牌,其中一些令牌必须安全地存储在您的一侧,因为稍后将需要它们来访问StockX API。
请求
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}'
参数名称 | 描述 |
---|---|
赠款类型 | 设置为authorization_code |
客户端标识 | 在应用程序创建时生成 |
客户端机密 | 在应用程序创建时生成 |
代码 | 步骤2中检索到的authorization_code |
redirect_uri | 在用户授予授权后,StockX auth服务将浏览器重定向到的URL。authorization_code 将在代码URL参数中可用。 |
响应
如果您能够成功地将代码交换为令牌,您将收到一个包含access_token
、refresh_token
、id_token
和token_type
的有效负载的响应。请参见下面的负载响应示例。
{
"access_token": "eyJz93a...k4laUWw",
"refresh_token": "GEbRxBN...edjnXbL",
"id_token": "eyJ0XAi...4faeEoQ",
"token_type": "Bearer"
}
应用程序设置
以下指南说明如何创建、更新和删除新应用程序。该应用程序提供实现授权流所需的客户端ID和客户端密码。
注意:目前StockX支持每个StockX帐户一个应用程序
要执行此操作,请转到应用程序,然后单击创建应用程序按钮以打开以下对话框:
输入应用程序的名称、描述和所选的回调URI,然后单击CREATE。您的应用程序现在已创建并注册,您将在应用程序页面上看到新创建的应用程序。
回调URI使StockX身份验证服务能够在用户每次登录时自动调用应用程序。
应用页面
“应用程序”页提供以下信息:
- 应用程序名称
- 应用描述
- 回调URI
- 查看您的应用程序凭据的链接
- 客户端ID,应用程序的唯一标识符
- Client Secret,用于授权Web API调用的密钥
您可以通过单击EDIT按钮来更新应用程序,也可以通过单击红色的删除按钮来删除应用程序。
调用StockX API
从前面的步骤中获得access_token
后,就可以开始进行API调用了。访问令牌必须作为不记名令牌添加到您的标头请求中,即,Bearer
在前面。
生产API URL:api.stockx.com
授权:承载者{ACCESS_TOKEN}
x-api-key:{api-key}
下面显示了一个带有承载令牌的头部的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名称 | 描述 |
---|---|
baseUrl | StockX API URL , 例如 :api.stockx.com |
版本 | StockX API版本,例如v1 |
授权 | 将此设置为`Beareraccess_token |
x-api-key | 在开发人员访问批准后自动生成,位于密钥页面中 |
注意事项:请注意,access_token
的有效期为12小时,之后您需要请求新的access_token
,您可以通过下面概述的refresh_token
步骤来完成。
刷新令牌
作为StockX API用户,一旦使用不记名令牌对StockX受众进行调用,该令牌将被验证。如果access_token
不再有效,它将返回一个HTTP 401,你需要更新你的access_token
。
要更新access_token
,您需要refresh_token
。refresh_token
是IDP(身份提供者)使用的特殊令牌,允许您在身份验证期间收到的令牌不再有效时请求新的access_token
。refresh_token
在登录后返回,并且具有较长的生命周期,只要您的会话有效,交换令牌就有效,因此当您调用交换令牌时,您将收到新的access_token
而不是新的refresh_token
,因为它们与您的会话一起长期存在。
为了获得刷新令牌,您必须使用/oauth/token
调用grant_type=refresh_token
。要将刷新令牌交换为访问令牌,您必须进行相同的调用。只有在您已经拨打了/authorize
电话之后,才能拨打电话。交换refresh_token
或新access_token
的示例请求和响应如下所示:
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}'
参数名称 | 描述 |
---|---|
赠款类型 | 设置为authorization_code |
客户端标识 | 在应用程序创建时生成 |
客户端机密 | 在应用程序创建时生成 |
观众 | 设置为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. 常见问题
Q:如何找到StockX API
A:幂简集成是国内领先的API集成管理平台,专注于为开发者提供全面、高效、易用的API集成解决方案。幂简API平台可以通过以下两种方式找到所需API:通过关键词搜索API(例如,输入’StockX API‘这类品类词,更容易找到结果)、或者从API hub分类页进入寻找。
Q:什么是StockX?
A:StockX是世界上最大的文化市场。我们的使念是以最智能的方式提供世界上最令人垂涎的物品。购买和出售最热门的运动鞋,服装,电子产品,收藏品,交易卡和配件。
Q:如何开始使用StockX API平台?
A:创建一个StockX帐户并请求开发人员访问权限。新用户需要验证他们的电子邮件地址才能访问该平台。专业提示,请确保您添加一个有效的付款方式到您的帐户。有关更多信息,请查看我们的-入门 页.
Q:StockX如何处理身份验证?
A:到目前为止,StockX不支持每个API键有多个应用程序。但是,多个StockX帐户可以访问一个应用程序。
Q:我的访问令牌过期了,我该怎么办?
A:请注意,访问令牌的有效期为12小时,之后您需要申请新的访问令牌。详细了解我们如何在我们的_认证 页.
Q:StockX是否支持多个应用程序?
A:到目前为止,StockX不支持每个API键有多个应用程序。但是,多个StockX帐户可以访问一个应用程序。
Q:StockX API的替代品有哪些?
提供AI大模型API的服务商除了StockX API,还有其他替代服务商也提供类似api服务,例如:
亚马逊 API开放平台、Shop API开放平台、Charm API开放平台
更多竞品可以在幂简集成开放平台中找到。
Q:StockX API这个密钥还适用于哪些api?
7. 总结
本文详细阐述了获取StockX API密钥的全过程,为开发者提供了清晰的分步指南。从StockX API注册账号开始,通过完成开发者认证,到最终获取API服务密钥,每一步都进行了详尽的说明。此外,文章还强调了获取密钥后进行可用性测试的重要性,确保开发者能够顺利地将API集成到应用中。本文为开发者提供了一个全面、实用的指南,帮助他们顺利获取StockX API密钥,并有效地将这一能力集成到应用中,从而提升应用的交互性和功能性。