cn 我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

疑难解答

学习如何解决用户在 REST API 中遇到的最常见问题。

本文内容

您在 API 中可能会遇到一些奇怪的问题,下面列出一些您可能会经历的问题的解决方案。

现在仓库的 404 错误

一般来说,我们发送 404 错误的原因是您的客户端没有正确通过身份验证。 您可能预期在这些情况下会看到 403 Forbidden。 但是,由于我们不希望提供有关私有仓库的任何信息,因此 API 会返回 404 错误。

要解决问题,请确保您正确通过身份验证您的 OAuth 访问令牌具有所需的作用域,并且第三方应用程序限制不会阻止您访问。

并非所有结果都返回

大多数访问资源列表(例如,用户、议题)的 API 调用都支持分页。 如果您发出了请求但收到了不完整的结果集,您可能只看到第一页。 您需要请求剩余的页面以获取更多结果。

切勿尝试和猜测分页 URL 的格式。 并非每个 API 调用都使用相同的结构。 您应该从随每个请求一起发送的链接标头中提取分页信息。

基本身份验证错误

从 2020 年 11 月 13 日起,REST API 和 OAuth 授权 API 的用户名和密码身份验证被弃用,不再有效。

使用 username/password 进行基本身份验证

如果您对 API 调用使用 usernamepassword,则它们无法再进行身份验证。 例如:

curl -u my_user:my_password https://api.github.com/user/repos

相反,在测试端点或进行本地开发时使用个人访问令牌

curl -H 'Authorization: token my_access_token' https://api.github.com/user/repos

对于 OAuth 应用程序,您应该使用 web 应用程序流程生成 OAuth 令牌以用于 API 调用的标头:

curl -H 'Authorization: token my-oauth-token' https://api.github.com/user/repos

调用 OAuth 授权 API

如果要调用 OAuth 授权 API 来管理 OAuth 应用的授权或生成访问令牌,类似于以下示例:

curl -u my_username:my_password -X POST "https://api.github.com/authorizations" -d '{"scopes":["public_repo"], "note":"my token", "client_id":"my_client_id", "client_secret":"my_client_secret"}'

然后您必须切换到 web 应用程序流程来生成访问令牌。

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。