Подтвердить что ты не робот

Получите GitHub аватар по электронной почте или по имени

Я пытаюсь получить изображение пользователя (аватара) пользователя GitHub от пользователей GitHub.

Я нашел эти API:

https://avatars.githubusercontent.com/<username>
https://avatars.githubusercontent.com/u/<userid>

Но я не могу найти способ получить аватар из электронной почты пользователя или отображаемого имени пользователя. Я не могу найти документацию об этом.

Есть ли какой-то похожий API URL для получения того, что я ищу?

4b9b3361

Ответ 1

Вы можете добавить .png в URL-адрес профиля пользователя, чтобы перенаправить его на свой аватар. Вы можете добавить параметр запроса size, чтобы указать размер меньше, чем значение по умолчанию шириной 460 пикселей (т.е. Оно не позволит больше 460).

Примеры:

https://github.com/twbs.png

https://github.com/npm.png?size=200

https://github.com/github.png?size=40

Ответ 2

https://developer.github.com/v3/users/#get-a-single-user

Используйте конечную точку /users/: user. Должен находиться под avatar_url в возвращенном json.

Например, мой аватар_url можно найти, нажав этот URL.

Изменить

Есть еще один способ, которым я могу думать, что это круговое движение. Поскольку GitHub использует Gravatar, если вы знаете адрес электронной почты, связанный с учетной записью, выполните хеш-код md5 нижнего регистра, лишенный адреса электронной почты и создайте URL-адрес, например http://www.gravatar.com/avatar/[md5_here].

Ответ 3

Это старый пост, но никто не предложил API пользователей поиска Github с область видимости:

Или используя новый Graphql API v4:

{
  search(type: USER, query: "in:email bmartel", first: 1) {
    userCount
    edges {
      node {
        ... on User {
          avatarUrl
        }
      }
    }
  }
}

Ответ 4

Используя GraphQL API v4, это тоже будет работать

Запрос (для имени пользователя) -

{
    user(login: "username") {
        avatarUrl
    }
}

Ответ -

{
    "data": {
        "user": {
            "avatarUrl": "https://avatars1.githubusercontent.com/u/..."
        }
    }
}