2012-08-15 191 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