2012-08-15 27 views
26

El uso de este enlace puedo ver que mi (tonylampada) Identificación en GitHub es 218821 https://api.github.com/users/tonylampadagithub nombre de usuario por ID

¿Cómo podría hacer lo contrario? Dado el id de usuario = 218821, ¿cuál es el nombre de usuario?


actualización

Respondiendo nulltoken aquí porque es una historia muy larga y no cabe en un comentario.

FreedomSponsors es una aplicación django que usa django-social-auth para habilitar el inicio de sesión con Github (y otros). (Debería verificarlo, por cierto, consulte el about page en el blog :-) Django-social-auth tiene un indicador de configuración que permite a la aplicación almacenar el nombre de usuario github en la base de datos. Hace unos días implementé una nueva versión de FS con el inicio de sesión github habilitado, pero con "storeGithubUsername" establecido en falso.

Algunos usuarios registraron sus cuentas de github, y ahora la base de datos tiene sus id de github, pero no sus nombres de usuario.

Puede ver en my profile que tengo github como "cuenta conectada" pero no hay ningún enlace a mi página de github.

lo necesito para hacer que el punto de enlace a https://github.com/tonylampada

Estoy listo para desplegar una nueva versión que soluciona este, estableciendo el "storeGithubUsername" (que no es lo que se llama, sólo estoy simplificando aquí) a la verdad. Pero me gustaría parchar la base de datos con los usuarios ya registrados en github. Tengo sus id. De github, pero no sus nombres de usuario de github.

+0

¿Por qué necesitarías esto? – nulltoken

+0

Larga historia ... actualizó la pregunta. Por favor, conoce la respuesta: o) –

+0

Así que supongo que no hay forma de obtener el nombre de usuario de la identificación ... ¿verdad? – Lipis

Respuesta

30

Tenemos que hacer esto en Gitter para hacer frente a la situación en la que un usuario ha cambiado su nombre de usuario en GitHub y obtenemos una respuesta 404 al consultar su nombre de usuario anterior.

Aquí hay un punto final no documentado, por lo tanto, utilícelo como su propio peligro, pero funciona por el momento.

Utilice el punto final: https://api.github.com/user/:id, donde :id es el ID del usuario.

Extremos similares existen para repos y orgs, en https://api.github.com/repositories/:id y https://api.github.com/organizations/:id respectivamente.

Tenga en cuenta que el nuevo repository redirects preview API solo admite repositorios, sin cambiar el nombre de usuarios u organizaciones. De hecho, la redirección HTTP 301 en realidad apunta a https://api.github.com/repositories/:id, por lo que hay una buena probabilidad de que estos puntos finales "ID" de hecho se puedan oficializar pronto.

+1

¡Gracias! Probé y funciona. Actualicé esto para ser la respuesta correcta. –

+2

Ya no funciona, al menos no funciona en el momento en que estoy escribiendo. – noun

+2

Funciona aquí en el momento en que estoy escribiendo. – fiatjaf

8

No hay ninguna característica documentada, ni indocumentada que yo sepa, que expone la recuperación del nombre de usuario de la identificación. Desde la perspectiva del consumidor API GitHub, la identificación del usuario es un "detalle de implementación". La clave real es el nombre de usuario.

Por lo que entiendo, solo necesita un lote de nombres de usuario con una lista de identificadores. Y esta sería una solicitud de única vez, no una necesidad permanente.

Como su solicitud parece legítima y limitada en su alcance, puede obtener esta respuesta directamente del soporte de GitHub al soltarles un correo electrónico en [email protected]

De hecho, xpaulbettsx, un GitHubber, incluso tweeted about this:

Soporte @ es bueno para lo que quiere decir a GitHub - insectos, características de alta 5s; todo, pero la seguridad que van a la seguridad @

+0

bien, aunque el nombre de usuario es la "clave real" puede cambiar, lo que puede ser problemático. – My1

+0

¿Por qué la API [proporciona] (https://stackoverflow.com/a/17309026/4854931) una identificación? – Alex78191

Cuestiones relacionadas