向 eBay 发出简单的授权请求

Making a simple authorized request to eBay

我计划使用 PHP 将网站与 eBay 集成,但首先我要使用 Postman 测试所有内容。

授权花了我一整天的时间,但我想我现在已经可以使用了。 (我不得不更新到最新版本的 Postman,然后我得到它来为我创建一个令牌。)

我说我 认为 因为我还没有设法让一个请求工作。我特意选择了 bulkGetInventoryItem (documentation),因为它似乎是更容易获得授权的请求之一。我只知道当身份验证设置错误时,我会收到与正确设置不同的错误消息。

出于故障排除的原因,我制作了一个包含所有范围的令牌:

(添加为 space 分隔的链接列表)

我已经将其中一个 eBay 列表更改为具有“123456”的 SKU 只是为了这个测试,但是我得到的错误与我将 "sku": "123456" 更改为 "sku": "anObviouslyFakeSKU" 完全一样,但我更改的任何其他内容都会产生新错误,因此我怀疑该问题与 SKU 相关,但也许不是。 (我发现 eBay API 发送相关错误消息的能力很差。)

我对 Postman 很陌生,所以这很可能是菜鸟犯的错误。

早期的错误显示为小的标点符号问题或勾选了错误的单选按钮,所以希望无论这次错误是什么,它都应该出现在这张截图中。

这次我做错了什么? (如果我可以发送任何其他可能有帮助的屏幕截图,请告诉我。)

为了帮助 post 的 SEO 和 copy/pasting 的易用性,我将上面截图中的重要文本抄录下来:

url

POST https://api.ebay.com/sell/inventory/v1/bulk_get_inventory_item

正文,原始

{
  "requests": [
    {
      "sku": "123456"
    }
  ]
}

输出

{
    "errors": [
        {
            "errorId": 2003,
            "domain": "ACCESS",
            "category": "APPLICATION",
            "message": "Internal error",
            "longMessage": "There was a problem with an eBay internal system or process. Contact eBay developer support for assistance",
            "parameters": [
                {
                    "name": "reason",
                    "value": "Failed to transform underlying error response, see logs."
                }
            ]
        }
    ]
}

更新: 再截图一张

更新二: 另一个截图

您需要在 Postman 中检查的一些事项。

  1. 当您进行身份验证并收到令牌时,您是否在像这样 POST https://api.ebay.com/sell/inventory/v1/bulk_get_inventory_item?

    的 api 调用中发布该令牌
  2. 你设置Authorization HTTPheader认证授权了吗?

  3. 你设置Content-Typeheader调用application/json了吗?

更多信息在这里:https://developer.ebay.com/api-docs/sell/inventory/resources/inventory_item/methods/bulkGetInventoryItem

更新

在 Postman 中使用环境变量授权:

Postman 环境变量文档: https://learning.postman.com/docs/postman/variables-and-environments/variables/

我想通了这个问题。我最大的错误是选择 bulkGetInventoryItem 作为 "simplest" 调用。我应该选择 getInventoryItem,因为该函数的错误报告对用户友好得多。

所以对于完全相同的请求,我得到的错误是 "We didn't find the entity you are requesting. Please verify the request"

快速 google 的错误让我找到了这个页面 https://forums.developer.ebay.com/questions/17883/cannot-get-my-listed-product-by-get-inventory-api.html 这让我找到了正确的答案!

无法访问我试图访问的库存项目,因为它不是通过开发人员创建的 API。

我希望这个答案对其他人有所帮助,因为在解决 bulkGetInventoryItem.

之前尝试 getInventoryItem 浪费了我一整天的时间