微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用来自 GithubAuthProvider 的访问令牌时,GitHub GraphQL API 返回被禁止

如何解决使用来自 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 举报,一经查实,本站将立刻删除。