GitHub GraphQL 不断返回 POST https://api.github.com/graphql 401 错误
Posted
技术标签:
【中文标题】GitHub GraphQL 不断返回 POST https://api.github.com/graphql 401 错误【英文标题】:GitHub GraphQL keeps returning POST https://api.github.com/graphql 401 error 【发布时间】:2021-08-07 20:46:35 【问题描述】:我已经尝试了几个小时来获取我的一些存储库的数据,但我不断收到此错误 '发布https://api.github.com/graphql 401'
我的代码
const githubData =
token: "my token",
username: "mikechibuzor",
;
const body =
query: `query
user(login: "mikechibuzor")
bio,
avatarUrl,
repositories(first: 20, orderBy: field: CREATED_AT, direction: DESC)
nodes
name,
description,
forkCount,
languages(first: 100)
nodes
name
`,
;
const baseUrl = "https://api.github.com/graphql";
const headers =
'Authorization': 'bearer ' + githubData.token,
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json",
;
fetch(baseUrl,
method: "POST",
Headers: headers,
body: JSON.stringify(body),
mode: "cors",
)
.then((response) => response.json())
.then((data) => console.log(data.data))
.catch((err) => console.log(JSON.stringify(err)));
我做错了什么?
【问题讨论】:
我现在要假设你 401 是什么意思。也许看看有关身份验证的文档 - docs.github.com/en/rest/overview/… 好的。我现在就这样做。谢谢。 我刚做了。文档告诉我,使用无效凭据进行验证时会发生“401”错误,并进一步说……“在短时间内检测到多个具有无效凭据的请求后,API 将暂时拒绝所有身份验证尝试具有 403 Forbidden 的用户(包括具有有效凭据的用户):“我想这就是正在发生的事情......我不确定 只是一个猜测,但 Authorization 的标头是否应该在 token 而不是 bearer 之前? 没有。而且我没有把令牌放在不记名前。'Authorization: 'bearer '+ token(githubData.token),
【参考方案1】:
也许只是一个错字 - 请尝试以下操作:
fetch(baseUrl,
method: "POST",
// lowercase 'h' for headers
headers: headers,
body: JSON.stringify(body),
mode: "cors",
)
// ...
如果这仍然不起作用,请检查您的 范围 以获取您的访问令牌。 GitHub 让您可以详细控制您希望使用特定令牌允许哪些类型的操作,以及不允许哪些操作。
【讨论】:
没用。我什至尝试用 axios 获取它,现在我认为错误应该在范围内的某个地方。但是我在生成令牌时检查了所有字段,给了我的令牌所有权限 这很奇怪,在我回答之前,我实际上复制了您的代码添加了第一行const fetch = require("node-fetch");
,用我自己的替换了 githubdata 并将“headers”写为小写,当我运行它时它按预期工作通过$ node code.js
以上是关于GitHub GraphQL 不断返回 POST https://api.github.com/graphql 401 错误的主要内容,如果未能解决你的问题,请参考以下文章
Graphql 突变返回 Post 400 错误,不知道如何解决
GraphQL - 缺少 POST 正文。你忘记使用 body-parser 中间件了吗?
如何使用 HttpUrlConnect 使用 java 查询 Github graphql API