Ebay API:“开发者帐户”与“Ebay 帐户”之间的连接

问题描述 投票:0回答:1

我刚刚开始熟悉 eBay RESTful API,请原谅我这个基本问题,但我还没有找到答案。

我多年前就有一个 eBay 帐户。我最近注册了一个开发者帐户(相同的电子邮件地址),并获得了沙盒和生产的令牌。我已成功使用公共 API(如列表项、搜索项等)通过查询 eBay 中的某些项来验证令牌。

如何从此处继续访问特定于我的 eBay 帐户的数据,例如购买和销售列表?我想,我需要以某种方式将我的应用程序连接到我的实时 eBay 帐户,并授予我的应用程序读取数据的权限,但我在 eBay 帐户设置和 API 调用中都找不到任何匹配的设置。

请指导我完成下一步:如何为我的应用程序提供所需的权限,以及如何构建一个简单的只读查询来查询,例如,我已购买的商品。

我认为这个问题不依赖于任何编程语言,随意使用你喜欢的任何编程语言。

ebay-api
1个回答
4
投票

好吧,如果我们只讨论授权令牌并调用类似订单的卖家 api(我相信在 eBay 中这称为履行)。

我们需要从创建用户令牌开始。

您可以在此处创建一个: enter image description here

然后您需要添加 eBay 重定向 URL:

enter image description here

我对 Auth'n'Auth 了解不多,所以我只讨论 OAuth

添加新的重定向 URL 后,您应该添加授权成功和失败的 url 地址。 授权后您将被重定向到那里。

现在我们可以测试代币的生成是否有效。

对于这个例子,我确实设置了这样的重定向网址:

enter image description here

我们需要单击“测试登录”(之前将单选按钮设置为OAuth) 您应该被重定向到网站:

enter image description here

您需要使用有权访问 sandbox.ebay.com 或 ebay.com 的帐户登录(取决于您是在沙箱还是生产环境中)

登录后我不记得是否会有另一个窗口确认应用程序范围以进行确认(我之前已经做过)。 但如果是这种情况,只需单击确认按钮即可。

现在您应该被重定向到 https://localhost.com,我们已将其设置为成功重定向网址

网址应该是这样的

https://localhost.com/?code=v%5E1.1%0VeMTI%3D%3D&expires_in=299

那个

code
参数要长得多。 而且你可以看到它是url编码的所以你需要在使用之前解码它

现在你就快到家了 :D

您有 300 秒的时间来调用 POST 请求以使用该代码参数进行授权。

POST https://api.sandbox.ebay.com/identity/v1/oauth2/token

需要标题

还记得第一个屏幕截图吗?

您需要去那里获取您的应用程序 ID、证书 ID,然后将其与“:”连接,然后将其编码为 Base64 并在该值之前添加“Basic”关键字。

在伪代码中它应该看起来像这样:

Authorization:Basic Base64.encode(AppID + ":" + CertID)

需要身材

Body 的格式需要是“x-www-form-urlencoded”(基本上是 key:value 格式)

这里有你需要的

grant_type:authorization_code

code:{code}

redirect_uri:{redirect_name}

{code} - 是来自成功授权 url 的值 {redirect_name} - 您可以在下面标有红色圆圈的屏幕上找到它

enter image description here

如果你做的一切正确,你应该得到 eBay 的回复

{
    "access_token": "v^1.1#i^1#r^0VbbxW1wjv4HZGAAA",
    "expires_in": 7200,
    "refresh_token": "v^1.1#i^1#f^0#r^FDQ=",
    "refresh_token_expires_in": 47304000,
    "token_type": "User Access Token"
}

您应该保存该数据,access_token用于访问数据,refresh_token用于刷新access_token。

使用 authToken 的示例请求

GET https://api.sandbox.ebay.com/sell/fulfillment/v1/order?filter=creationdate:[2022-03-31T08:25:43.511Z..]

You need Authroization header:
Authorization:Bearer v^1.1#i^1#r^0VbbxW1wjv4HZGAAA

我想就是这样。要将其实现到您的应用程序中,您需要能够生成单击“测试登录”后重定向到的第一个网址,基本上就是这样。

顺便说一句,你像这样刷新令牌

发布https://api.sandbox.ebay.com/identity/v1/oauth2/token

正文 x-www-form-urlencoded

grant_type:refresh_token

刷新令牌:v^1.1#i^1#f^0#r^FDQ=

标题

Authorization:Basic Base64.encode(AppID + ":" + CertID)

我希望这会对某人有所帮助。 :)

© www.soinside.com 2019 - 2024. All rights reserved.