请检查您的授权报头是否和 RFC 6750 OAuth 2.0 授权框架:持有者令牌用法第 2.1 节中的描述一致。
GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer mF_9.B5f-4.1JqM
请检查您的授权报头是否和 RFC 6750 OAuth 2.0 授权框架:持有者令牌用法第 2.1 节中的描述一致。
GET /resource HTTP/1.1 Host: server.example.com Authorization: Bearer mF_9.B5f-4.1JqM
授权码 = 1 分钟
访问令牌 = 30 分钟
刷新令牌 = 90 天
授权码 - 使用 Digikey.com 登录信息对客户端应用程序认证后授予,用于接收访问令牌。
访问令牌 - 用于提出请求
刷新令牌 - 访问令牌失效后使用。 提交刷新令牌,获取有效访问令牌。
授权码 = 1 分钟
访问令牌 = 30 分钟
刷新令牌 = 90 天
授权码 - 使用 Digikey.com 登录信息对客户端应用程序认证后授予,用于接收访问令牌。
访问令牌 - 用于提出请求
刷新令牌 - 访问令牌失效后使用。 提交刷新令牌,获取有效访问令牌。
授权处理期间会弹出一个密码表单。 在此表单中,需要您使用“我的 DigiKey 账户”信息。
如您没有“我的 DigiKey 账户”,您可以进入 https://www.digikey.com/MyDigiKey/Register 页面创建。
如您不知道自己的“我的 DigiKey 账户”信息或用户名,您可进入 https://www.digikey.com/MyDigiKey/login 页面重新设置或者查找。
授权处理期间会弹出一个密码表单。 在此表单中,需要您使用“我的 DigiKey 账户”信息。
如您没有“我的 DigiKey 账户”,您可以进入 https://www.digikey.com/MyDigiKey/Register 页面创建。
如您不知道自己的“我的 DigiKey 账户”信息或用户名,您可进入 https://www.digikey.com/MyDigiKey/login 页面重新设置或者查找。
刷新令牌 90 天后失效,除非有以下情况:
- 针对新的访问令牌(和新的刷新令牌)进行了延期。
- 已注册的应用程序客户端 ID 或客户端密钥已重置,所有令牌将变得无效。
刷新令牌 90 天后失效,除非有以下情况:
- 针对新的访问令牌(和新的刷新令牌)进行了延期。
- 已注册的应用程序客户端 ID 或客户端密钥已重置,所有令牌将变得无效。
请通过链接DigiKey GitHub Repository. 访问 DigiKey 针对 OAuth2 C# / Java 客户端库的 GitHub 页面。
请通过链接DigiKey GitHub Repository. 访问 DigiKey 针对 OAuth2 C# / Java 客户端库的 GitHub 页面。
如果您没有基础架构设置来处理来自 DigiKey 的响应,您可以使用 https://localhost
的初始值。
如果您没有基础架构设置来处理来自 DigiKey 的响应,您可以使用 https://localhost
的初始值。
Digi-Key 发现,实现 OAuth 2.0 是相互保证用户身份以及用户允许访问我们的 API 的最简单方法。 由于我们的 API 会暴露敏感信息,因此 Digi-Key 仅允许客户端通过 OAuth 2.0 访问进行验证。 Dig-Key 严格使用三段式 OAuth 流程。
Digi-Key 不允许通过永久性访问令牌和任何其它同样不安全的流程进行访问。
Digi-Key 发现,实现 OAuth 2.0 是相互保证用户身份以及用户允许访问我们的 API 的最简单方法。 由于我们的 API 会暴露敏感信息,因此 Digi-Key 仅允许客户端通过 OAuth 2.0 访问进行验证。 Dig-Key 严格使用三段式 OAuth 流程。
Digi-Key 不允许通过永久性访问令牌和任何其它同样不安全的流程进行访问。
我如何才能得到访问令牌,这样我的应用程序就能调用你们的 API?
当从您的应用程序调用 API 时,您需要传递一个访问令牌。 访问令牌可以通过对 DigiKey 授权服务器进行 API 调用获得。 如需详细了解,请参见OAuth 2.0 文档。
我如何才能得到访问令牌,这样我的应用程序就能调用你们的 API?
当从您的应用程序调用 API 时,您需要传递一个访问令牌。 访问令牌可以通过对 DigiKey 授权服务器进行 API 调用获得。 如需详细了解,请参见OAuth 2.0 文档。
客户端 ID 注册到您的客户端应用程序,是访问 API 必需的。
客户 ID 注册到您的“我的 DigiKey” 账户。 当您的账户注册了多个客户 ID 时,客户 ID 就可以被传递到 API 请求中。
如果您的“我的 DigiKey”账户采用了不同的币种或者注册了多个用户,您就可以有多个客户 ID。
客户端 ID 注册到您的客户端应用程序,是访问 API 必需的。
客户 ID 注册到您的“我的 DigiKey” 账户。 当您的账户注册了多个客户 ID 时,客户 ID 就可以被传递到 API 请求中。
如果您的“我的 DigiKey”账户采用了不同的币种或者注册了多个用户,您就可以有多个客户 ID。
错误信息:
{'ValidationErrors': [], 'ErrorDetails': '确保授权报头包含有效的持有者令牌', 'ErrorResponseVersion': '3.0.0.0', 'StatusCode': 401, 'RequestId': '98cc4acc-2335-4121-9aba-ddc65fe2be40', 'ErrorMessage': '持有者令牌无效'}
验证授权报头的值是否包含前缀“Bearer”
例如: "Authorization": "Bearer xGr69sdAjLmnAHwGF4R1HedfDHl3j"
必须发送单词 "Bearer",否则将收到持有者令牌错误。
"Authorization":"Bearer <bearertoken>"
错误信息:
{'ValidationErrors': [], 'ErrorDetails': '确保授权报头包含有效的持有者令牌', 'ErrorResponseVersion': '3.0.0.0', 'StatusCode': 401, 'RequestId': '98cc4acc-2335-4121-9aba-ddc65fe2be40', 'ErrorMessage': '持有者令牌无效'}
验证授权报头的值是否包含前缀“Bearer”
例如: "Authorization": "Bearer xGr69sdAjLmnAHwGF4R1HedfDHl3j"
必须发送单词 "Bearer",否则将收到持有者令牌错误。
"Authorization":"Bearer <bearertoken>"
将 API 定价响应与 DigiKey 网站相匹配:
- 使用 PartSearch API 的产品详情操作
- 验证请求是否提供了正确的本地信息(如网站上设置的信息)。
- 验证请求是否在 API 请求中提供了相同的客户 ID(与在 DigiKey 网站上注册的相同)
这是唯一能提供零件准确定价的过程。
提交请求至:
/Search/v3/Products/p5555-nd
用本地信息刷新 API 请求:
--header 'x-digikey-locale-currency: REPLACE_THIS_VALUE'
--header 'x-digikey-locale-language: REPLACE_THIS_VALUE'
--header 'x-digikey-locale-shiptocountry: REPLACE_THIS_VALUE'
--header 'x-digikey-locale-site: REPLACE_THIS_VALUE'
将 API 定价响应与 DigiKey 网站相匹配:
- 使用 PartSearch API 的产品详情操作
- 验证请求是否提供了正确的本地信息(如网站上设置的信息)。
- 验证请求是否在 API 请求中提供了相同的客户 ID(与在 DigiKey 网站上注册的相同)
这是唯一能提供零件准确定价的过程。
提交请求至:
/Search/v3/Products/p5555-nd
用本地信息刷新 API 请求:
--header 'x-digikey-locale-currency: REPLACE_THIS_VALUE' --header 'x-digikey-locale-language: REPLACE_THIS_VALUE' --header 'x-digikey-locale-shiptocountry: REPLACE_THIS_VALUE' --header 'x-digikey-locale-site: REPLACE_THIS_VALUE'
在使用开发者入口测试工具时,如果没有输入所有的报头必填字段,就会收到 400 错误,或者收到乱码消息。
在使用开发者入口测试工具时,如果没有输入所有的报头必填字段,就会收到 400 错误,或者收到乱码消息。
这很可能是由于所使用的 TLS 协议版本造成的。 请确保您的应用程序使用的是 TLSv1.2。
这很可能是由于所使用的 TLS 协议版本造成的。 请确保您的应用程序使用的是 TLSv1.2。
每个 API 响应都伴随着以下一组报头,以确定客户端应用程序的使用状态。
报头 描述 X-RateLimit-Limit
允许客户每天发出请求的最大数量。 X-RateLimit-Remaining
当前速率限制窗口中剩余的请求数量。
一旦应用程序超出速率限制窗口,该应用程序就会收到一个状态码:
429 请求过多
当超过触发限值时,响应报头会变为:
报头 描述 Retry-After 再次请求前需等待的秒数 X-BurstLimit-Limit API 允许的最大请求数,用“每分钟次数”表示 X-BurstLimit-Remaining 当前速率限制窗口中剩余的请求数量。 X-BurstLimit-Reset 等待触发限值窗口重置的秒数 X-BurstLimit-ResetTime 触发限值窗口重置时的时间,用 GMT(格林威治标准时间) 表示
并收到如下 JSON 响应消息:
{
"ErrorResponseVersion": "3.0.0.0",
"StatusCode": 429,
"ErrorMessage": "BurstLimit exceeded",
"ErrorDetails": "Please try again after the number of seconds in the Retry-After header",
"RequestId": "fa3e4d88-bfc4-4565-c6d5-a567633c091b",
"ValidationErrors": []
}
当超过每日限值时,响应报头会变为:
报头 描述 Retry-After 再次请求前需等待的秒数 X-RateLimit-Limit API 允许的最大请求数量 X-RateLimit-Remaining 当前速率限制窗口中剩余的请求数量。 X-RateLimit-Reset 等待已超速率限制窗口重置的秒数 X-RateLimit-ResetTime 速率限制窗口重置的时间,用 GMT(格林威治标准时间) 表示
并收到如下 JSON 响应消息:
{
"ErrorResponseVersion": "3.0.0.0",
"StatusCode": 429,
"ErrorMessage": "Daily Ratelimit exceeded",
"ErrorDetails": "Please try again after the number of seconds in the Retry-After header",
"RequestId": "f4a0c1ab-8b47-4a72-e010-8ebe5d78f96c",
"ValidationErrors": []
}
每个 API 响应都伴随着以下一组报头,以确定客户端应用程序的使用状态。
报头 | 描述 |
---|---|
X-RateLimit-Limit | 允许客户每天发出请求的最大数量。 |
X-RateLimit-Remaining | 当前速率限制窗口中剩余的请求数量。 |
一旦应用程序超出速率限制窗口,该应用程序就会收到一个状态码:
429 请求过多
当超过触发限值时,响应报头会变为:
报头 | 描述 |
---|---|
Retry-After | 再次请求前需等待的秒数 |
X-BurstLimit-Limit | API 允许的最大请求数,用“每分钟次数”表示 |
X-BurstLimit-Remaining | 当前速率限制窗口中剩余的请求数量。 |
X-BurstLimit-Reset | 等待触发限值窗口重置的秒数 |
X-BurstLimit-ResetTime | 触发限值窗口重置时的时间,用 GMT(格林威治标准时间) 表示 |
并收到如下 JSON 响应消息:
{ "ErrorResponseVersion": "3.0.0.0", "StatusCode": 429, "ErrorMessage": "BurstLimit exceeded", "ErrorDetails": "Please try again after the number of seconds in the Retry-After header", "RequestId": "fa3e4d88-bfc4-4565-c6d5-a567633c091b", "ValidationErrors": [] }
当超过每日限值时,响应报头会变为:
报头 | 描述 |
---|---|
Retry-After | 再次请求前需等待的秒数 |
X-RateLimit-Limit | API 允许的最大请求数量 |
X-RateLimit-Remaining | 当前速率限制窗口中剩余的请求数量。 |
X-RateLimit-Reset | 等待已超速率限制窗口重置的秒数 |
X-RateLimit-ResetTime | 速率限制窗口重置的时间,用 GMT(格林威治标准时间) 表示 |
并收到如下 JSON 响应消息:
{ "ErrorResponseVersion": "3.0.0.0", "StatusCode": 429, "ErrorMessage": "Daily Ratelimit exceeded", "ErrorDetails": "Please try again after the number of seconds in the Retry-After header", "RequestId": "f4a0c1ab-8b47-4a72-e010-8ebe5d78f96c", "ValidationErrors": [] }
HTTP 状态代码 描述 200 OK
成功。 400 错误请求
输入参数错误。 错误消息应指明哪一个以及原因。 不知何故,您的客户端请求格式错误/无效。 也可能是请求的零件未找到,但这种可能性极小。 401 未授权
客户端传入无效访问令牌。 客户端应刷新此令牌,然后重试。 或者您还没有将客户端应用订阅至 DK API 产品。 404 未发现
资源未找到。 405 方法不允许
资源不支持指定的 HTTP 动词。 您提交的请求使用了非预期格式。 例如,当需要以 POST 方式提供数据时,提交的却是 GET 请求。 429 请求过多
请求次数过多,超出速率限制。 在特定时间内请求数量过多(>120 /分钟),或超过当前速率限制窗口允许的值。 500 内部服务器错误
服务器未按预期运行。 请求可能有效,但需要稍后重新请求。 503 服务不可用
服务不可用。
HTTP 状态代码 | 描述 |
---|---|
200 OK | 成功。 |
400 错误请求 | 输入参数错误。 错误消息应指明哪一个以及原因。 不知何故,您的客户端请求格式错误/无效。 也可能是请求的零件未找到,但这种可能性极小。 |
401 未授权 | 客户端传入无效访问令牌。 客户端应刷新此令牌,然后重试。 或者您还没有将客户端应用订阅至 DK API 产品。 |
404 未发现 | 资源未找到。 |
405 方法不允许 | 资源不支持指定的 HTTP 动词。 您提交的请求使用了非预期格式。 例如,当需要以 POST 方式提供数据时,提交的却是 GET 请求。 |
429 请求过多 | 请求次数过多,超出速率限制。 在特定时间内请求数量过多(>120 /分钟),或超过当前速率限制窗口允许的值。 |
500 内部服务器错误 | 服务器未按预期运行。 请求可能有效,但需要稍后重新请求。 |
503 服务不可用 | 服务不可用。 |
API 只接受 API 文档中引用的内容。
API 只接受 API 文档中引用的内容。
No, only one part number can be submitted. The API only accepts what is referenced in the API's documentation.
No, only one part number can be submitted. The API only accepts what is referenced in the API's documentation.
每个 API 响应都伴随着以下一组响应报头,以确定您的客户端应用程序的使用状态。
报头 描述 X-RateLimit-Limit
允许客户每天发出请求的最大数量。 X-RateLimit-Remaining
当前速率限制窗口中剩余的请求数量。
每个 API 响应都伴随着以下一组响应报头,以确定您的客户端应用程序的使用状态。
报头 | 描述 |
---|---|
X-RateLimit-Limit | 允许客户每天发出请求的最大数量。 |
X-RateLimit-Remaining | 当前速率限制窗口中剩余的请求数量。 |
应用程序可以调用沙盒 API 端点,但不能调用生产版本。 这些应用程序仅对您可见。 您组织内的每个成员可共享生产应用程序,但仅能调用生产版本。
应用程序可以调用沙盒 API 端点,但不能调用生产版本。 这些应用程序仅对您可见。 您组织内的每个成员可共享生产应用程序,但仅能调用生产版本。
有。 您可以在所有 API 中使用“Includes”报头列出希望返回的字段。
有。 您可以在所有 API 中使用“Includes”报头列出希望返回的字段。
关键字搜索数据经过缓冲,并且可能长达 24 小时得不到更新。 如需实时定价和供货情况,请使用 ProductDetails。
关键字搜索数据经过缓冲,并且可能长达 24 小时得不到更新。 如需实时定价和供货情况,请使用 ProductDetails。
您可以通过使用 ParametricFilters 和之前更广泛搜索的结果来缩小关键词搜索范围。
您可以通过使用 ParametricFilters 和之前更广泛搜索的结果来缩小关键词搜索范围。
如果零件编号包含特殊字符,则应对特殊字符使用 URL 编码。
例如,零件编号 "MCP2221A-I/ML-ND" 发送时应使用 "MCP2221A-I%2FML-ND" URL 编码。
如果零件编号包含特殊字符,则应对特殊字符使用 URL 编码。
例如,零件编号 "MCP2221A-I/ML-ND" 发送时应使用 "MCP2221A-I%2FML-ND" URL 编码。
沙盒的目的是测试您的代码与我们 API(授权和认证)的通信能力。
您收到的数据将具有正确的响应结构,但数据本身可能与您的请求不符。
当您确认您有能力与我们的 API 通信后,建议您切换到生产版本。
沙盒的目的是测试您的代码与我们 API(授权和认证)的通信能力。
您收到的数据将具有正确的响应结构,但数据本身可能与您的请求不符。
当您确认您有能力与我们的 API 通信后,建议您切换到生产版本。