eBay API OAuth范围问题“请求的范围无效、未知、格式错误或超出了授予客户端的范围”

slhcrj9b  于 2023-06-05  发布在  其他
关注(0)|答案(1)|浏览(482)

我一直在试验沙盒和生产eBay API。我设法让沙盒API工作,但只有在范围列表为空的情况下。如果我添加作用域,它将返回错误消息The requested scope is invalid, unknown, malformed, or exceeds the scope granted to the client。我试图了解为什么会发生此错误以及如何更改作用域。
下面是为sandbox API返回的成功访问令牌。请注意scopes参数是如何被取消选中的,并且不会在请求体中发送。未指定作用域列表,但它仍然工作并返回访问令牌。这是为什么呢?不需要望远镜吗?

当我启用作用域时,我收到错误
请求的范围无效、未知、格式不正确或超出了授予客户端的范围
让我们看一个例子:
我想使用“Client Credentials Grant Type“而不是“Authorization Code Grant“。请注意,客户端凭据不需要用户授权,因为它仅供应用程序使用。因此,this post不适用于该问题。
下面是我的应用程序密钥集可以访问的客户端凭据范围。

在这里,我创建并发送了带有“https://api.ebay.com/oauth/api_scope”范围的请求。我根据文档对范围进行了URL编码。

在这里,我在postman中创建并发送请求,没有指定范围。成功返回访问代码。

如果指定了作用域,为什么访问代码请求会失败?我不需要指定作用域,因为我在文档中看到了这一点....

我如何知道一个端点是否福尔斯“ebay调用”并且不需要作用域?#21453;,还是需要一个范围?

nc1teljy

nc1teljy1#

为什么你的请求没有作用域就成功了

看看bay API站点上的这一部分。
它说:

"Scopes and refresh tokens
When creating a User access token, you must supply a list of scopes in your consent request. (See Getting the list of scopes assigned to your application.) For more details, see The authorization code grant flow.

When requesting a refresh token, you can either:

include an optional scope parameter to supply a list of scopes; or

include no scope parameter and default to the set of scopes included in the consent request"

我相信当你发送一个没有作用域的请求时,它默认为另一个作用域列表,这就是为什么你的请求在没有作用域的情况下成功的原因。

请求失败原因

本节中的同一页:它说:“您用来生成新令牌的请求必须包括一个范围列表,该列表允许访问您计划使用令牌调用的所有方法。”
我在你的例子中看不到你所有的作用域,但我猜你发送的请求没有你的应用程序所需的所有作用域,如果你发送的请求没有所有作用域,它会拒绝你的请求。

如何查看您的token请求所需的作用域

在该页面上有一个部分,介绍了查看请求所需的所有作用域
如果您按照说明进行操作,您应该能够看到一个示例请求,并看到您为应用程序分配了哪种范围。
OAuth可能很棘手,但看起来你走在正确的道路上!有时远离它也有帮助,但我认为你走在正确的道路上,希望这有帮助!

相关问题