自 2021 年底以來,GitHub 似乎已經進行了更新。
https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param/
我關注了許多資源,其中以下代碼增加了一個人每小時可以執行的請求數量。現在下面的請求不起作用。相反,檔案說要使用 CURL,因此例如以下在終端中作業:
curl -u client_id:secret_key https://api.github.com/users/<username>
我想在 JavaScript 中執行此操作,我正在使用 JavaScript 中的 GitHub 用戶查找器應用程式。有人可以告訴我如何讓它真正起作用。我正在使用的代碼如下。
TL:DR: 我可以使用下面的代碼訪問 github API 并接收要顯示的 JSON 物件,但它限制為每小時 60 個請求。GitHub 檔案說,自 2021 年底以來,不再允許使用查詢引數,所以我現在迷路了。我現在如何在 JavaScript 中做到這一點?
const client_id = "df2429c311a306c35233";
const client_secret = "5c23233326680aa21629451a6401d36ec";
const fetchUsers = async (user) => {
const api_call = await fetch(`https://api.github.com/users/${user}?client_id=df5429c311a306c356f4&
client_secret=${client_secret}`);
const data = await api_call.json();
return {data};
};
編輯/更新:
const inputValue = document.querySelector("#search");
const searchButton = document.querySelector(".searchButton");
const nameContainer = document.querySelector(".main__profile-name");
const unContainer = document.querySelector(".main__profile-username");
const reposContainer = document.querySelector(".main__profile-repos");
const urlContainer = document.querySelector(".main__profile-url");
const client_id = "<user_id>";
const client_secret = "<client_secret>";
const headers = {
'Authorization': 'Basic ' (new Buffer(client_id ':' client_secret).toString('base64'))
}
const fetchUsers = async (user) => {
const api_call = await fetch(`https://api.github.com/users/${user}`, {
method: 'GET',
headers: headers
});
const data = await api_call.json();
return {data};
};
const showData = () => {
fetchUsers(inputValue.value).then((res) => {
console.log(res);
nameContainer.innerHTML = `Name: <span >${res.data.name}</span>`
unContainer.innerHTML = `Username: <span >${res.data.login}</span>`
reposContainer.innerHTML = `Repos: <span >${res.data.public_repos}</span>`
urlContainer.innerHTML = `Url: <span >${res.data.url}</span>`
})
};
searchButton.addEventListener("click", () => {
showData();
})
uj5u.com熱心網友回復:
這些表現為基本身份驗證型別的用戶名和密碼。因此,您的 Api 請求應具有以下標頭。
const headers = {
'Authorization': 'Basic ' btoa(CLIENT_ID ':' CLIENT_SECRET)
}
請注意,正在使用 btoa 函式,因為瀏覽器沒有對 Buffer 的原生支持。如果 btoa 拋出錯誤,請嘗試使用 window.btoa 并像使用它一樣使用它
const response = await fetch(url, {method:'GET',
headers: headers,
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/464588.html
標籤:javascript 节点.js api 拿来
上一篇:根據型別呼叫呼叫(虛擬屬性或函式),getter是否可以回傳thunk或值?
下一篇:NodeJS應用程式不上傳檔案
