2012-08-15 105 views
26

github上的用户名使用这个链接,我可以看到在github上我(tonylampada)编号为218821 https://api.github.com/users/tonylampada获得通过ID

我怎么能反其道而行之?鉴于用户id = 218821,用户名是什么?


更新

接听nulltoken这里,因为这是一个很长的故事,这将不适合评论。

FreedomSponsors是一个django应用程序,它使用django-social-auth来启用Github(和其他人)登录。 (你应该检查出来,顺便说一下,请在博客中看到about page :-) Django-social-auth有一个配置标志,允许应用程序在数据库中存储github用户名。 前几天我部署了启用github登录的新版FS,但将“storeGithubUsername”设置为false。

一些用户注册了他们的github账户,现在数据库有他们的github id,但没有他们的用户名。

你可以选择在my profile,我有github作为“连接帐户”,但没有链接到我的github页面。

我需要它,使链接指向https://github.com/tonylampada

我已经准备好通过设置“storeGithubUsername”部署,修复这个新的版本,(这不是它叫什么,我只是简化这里)为真。 但我想用已经github注册的用户修补数据库。我有他们的github id,但不是他们的github用户名。

+0

为什么你需要这个? – nulltoken 2012-08-15 20:40:17

+0

长话......更新了问题。请知道答案:o) – 2012-08-15 21:28:00

+0

所以我猜没有办法从ID获取用户名..对吗? – Lipis 2013-10-13 20:29:14

回答

30

我们需要做这个Gitter应对情况用户在GitHub上更改了自己的用户名,当查询他们的旧用户名时,我们得到了404响应。

这里有一个未记录的端点,所以用作自己的危险,但现在确实有效。

使用端点:https://api.github.com/user/:id,其中:id是用户的ID。

对于回购和组织,存在类似的终点,分别为 https://api.github.com/repositories/:idhttps://api.github.com/organizations/:id

请注意,新的repository redirects preview API仅支持存储库,不支持重命名的用户或组织。实际上,HTTP 301重定向实际上指向了https://api.github.com/repositories/:id,所以很可能这些“ID”端点实际上很快就会正式生效。

+1

谢谢!我测试过,它的工作原理。我更新了这是正确的答案。 – 2015-06-02 13:49:47

+2

它不起作用,至少在我写作的时候它不起作用。 – noun 2016-03-16 05:31:15

+2

它在我写作的时候在这里工作。 – fiatjaf 2016-03-30 14:12:46

8

没有记录的功能,也没有我知道的无证的功能,从ID中公开检索用户名。从GitHub API使用者的角度来看,用户标识是一个“实现细节”。真正的关键是用户名。

从我的理解,你只需要一批用户名给出的ID列表。这将只是一次性的请求,而不是永久的需求。

由于您的请求似乎合法且范围有限,因此您可以直接从GitHub支持中获得此答案,方法是向他们发送电子邮件[email protected]

事实上,xpaulbettsx,一个GitHubber,甚至tweeted about this

支持@有利于你要告诉GitHub的任何东西 - 臭虫,功能,高5秒;一切,但安全,关系到安全@

+0

好,即使用户名是它可以改变的“真正的关键”,这可能是有问题的。 – My1 2017-02-28 14:18:43

+0

为什么API [提供](https://stackoverflow.com/a/17309026/4854931)ID? – Alex78191 2017-09-03 04:48:24