使用Javascript获取用户列表';Github存储库
首先,谢谢你的阅读 我正在GitHub上主持我当前的项目。使用GitHub页面,我]主持我的个人博客 在博客上,我有一个专门介绍我目前正在从事的所有项目的页面。基本上,我希望通过查询GitHub自动显示所有正在进行的项目的列表 在谷歌搜索的时候,我发现了这一点。 我试过了,但没有达到预期效果。加载页面时,我只收到一条文本消息“正在查询GitHub中的存储库”。似乎什么也没发生 我联系了GitHub的维护人员,他们友好地回答说,这种技术使用的是过时的GitHub API版本 由于我没有JavaScript方面的经验,有人能帮我修复它吗 问候,使用Javascript获取用户列表';Github存储库,javascript,api,github,repository,Javascript,Api,Github,Repository,首先,谢谢你的阅读 我正在GitHub上主持我当前的项目。使用GitHub页面,我]主持我的个人博客 在博客上,我有一个专门介绍我目前正在从事的所有项目的页面。基本上,我希望通过查询GitHub自动显示所有正在进行的项目的列表 在谷歌搜索的时候,我发现了这一点。 我试过了,但没有达到预期效果。加载页面时,我只收到一条文本消息“正在查询GitHub中的存储库”。似乎什么也没发生 我联系了GitHub的维护人员,他们友好地回答说,这种技术使用的是过时的GitHub API版本 由于我没有JavaSc
罗兰
下面是我在 @谢谢你的帮助,但我真的不明白你的意思。我也试着向Chrome的控制台发送一些命令。我猜
$
是jQuery的别名,不是吗?嗯,发送相同的东西,控制台只输出多个对象,描述我的repo。太棒了我认为现在的问题是正确地解析它们并显示它们。哎呀,我需要学习JavaScipt语法…非常明确地说明了如何做到这一点。事实上,因为我的用户名在那里和这里是一样的,让我给你看看 我在github上打开了我的回购页面(到目前为止这是显而易见的),然后用Chrome按下F12 我询问了一下,看看jQuery是否确实安装了,因为我在做示例时喜欢快捷方式 然后我测试了
$.getJSON('//api.github.com/users/jcolebrand/repos',{},函数(数据){console.log(数据)})
,正如它所说的那样,我被授予了我自己看到的五个repo
以下是我没有做的事情:我没有获得API密钥,我没有通过API工作,我使用了我现有的凭证。记住这些,但这就是今后改进的方法。您发布的脚本不起作用,因为URL是针对旧API的。将URL更改为此,它应该适合您
https://api.github.com/users/YOUR_USERNAME_HERE/repos?callback=CALLBACK
注意:
callback=
是可选的。您也可以使用github API库。这个库是我最喜欢的扩展到@JColebrand的答案,使用JQuery
快捷方式XMLHttpRequest
,$.getJson()
,下面是一个在2020年起作用的API调用
user='tik9'
apirepo=`https://api.github.com/users/${user}`
listrepos=document.createElement('ul')
document.getElementById('github').appendChild(listrepos)
$.getJSON(apirepo+'/repos',函数(数据){
console.log('data now',data)
功能比较(a、b){
如果(a.观察者>b.观察者){
返回-1
}
如果(a.观察者{
listItemRepo=document.createElement('li')
appendChild(listItemRepo)
hlink=document.createElement('a')
listItemRepo.appendChild(hlink)
hlink.textContent=`${v.description}| Stars:${v.watchers}`
hlink.href=v.html\u url
})
})
Github存储库
如果可能,请显示您试图用于查询github的代码。嘿,MJOyce,非常感谢。我工作得很好。我做了一些增强,使其与JSON数据完全兼容。嗯,甚至不需要“?callback=?”部分。不过,再次感谢!8年后,2020年就要过去了,它已经不起作用了。有人能看一下吗?你能用这个来访问私有存储库吗?
// http://aboutcode.net/2010/11/11/list-github-projects-using-javascript.html
jQuery.githubUser = function(username, callback) {
jQuery.getJSON("http://github.com/api/v1/json/" + username + "?callback=?", callback);
}
jQuery.fn.loadRepositories = function(username) {
this.html("<span>Querying GitHub for " + username +"'s repositories...</span>");
var target = this;
$.githubUser(username, function(data) {
var repos = data.user.repositories;
sortByNumberOfWatchers(repos);
var list = $('<dl/>');
target.empty().append(list);
$(repos).each(function() {
list.append('<dt><a href="'+ this.url +'">' + this.name + '</a></dt>');
list.append('<dd>' + this.description + '</dd>');
});
});
function sortByNumberOfWatchers(repos) {
repos.sort(function(a,b) {
return b.watchers - a.watchers;
});
}
};
https://api.github.com/users/YOUR_USERNAME_HERE/repos?callback=CALLBACK