如何解决使用来自 GithubAuthProvider 的访问令牌时,GitHub GraphQL API 返回被禁止
我正在使用具有添加范围 repo
的 GithubAuthProvider 来获取用户的访问令牌,该令牌稍后用于访问 GitHub GraphQL API(GitHub 应用程序将内容和元数据的权限设置为只读) .
问题是当我尝试列出私有存储库时。 API 返回一个空数组,就好像我没有所需的权限一样。此外,当我尝试列出用户存储库的分支时,它会返回 FORBIDDEN
类型的错误。
查询:
query {
viewer {
repository(name: "some-repo") {
refs(refPrefix: "refs/heads/",first: 10) {
nodes {
name
}
}
}
}
}
回复:
{
"data": {
"viewer": {
"repository": {
"refs": null
}
}
},"errors": [
{
"type": "FORBIDDEN","path": [
"viewer","repository","refs"
],"extensions": {
"saml_failure": false
},"locations": [
{
"line": 7,"column": 7
}
],"message": "Resource not accessible by integration"
}
]
}
我错过了什么?
解决方法
对于 GitHub GraphQL API,仅范围 repo
可能不够。
以下是要求参考的范围。 Authenticating with GraphQL
user
public_repo
repo
repo_deployment
repo:status
read:repo_hook
read:org
read:public_key
read:gpg_key
The API returns an empty array as if I don't have the required permissions.
不知你是否在viewer
下查询。 viewer
可以获得他/她拥有的私有存储库。对于其他人拥有的repos,您可以尝试
repository(name: "repo-name",owner: "login") {
name
}
如果您没有所需的权限,它将返回 NOT_FOUND
错误。
你的查询对我来说很好:)
,事实证明,我阅读 Firebase 说明的速度太快,并创建了一个 Github 应用程序而不是 OAuth 应用程序。
它现在可以正常工作了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。