通过电子邮件或姓名获取GitHub头像

89

我正在尝试从GitHub用户那里获取他们的GitHub用户图片(头像)。

我已经找到了这些API:

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

但我找不到从用户电子邮件或用户名获取头像的方法。 我找不到相关文档。

是否有类似的URL API可以获取我正在寻找的内容?

5个回答

209

8
你是怎么发现这个的? - Ciro Santilli OurBigBook.com
7
请见此处:https://github.com/sindresorhus/refined-github/issues/95#issuecomment-204806394。整个线程可能都很有趣,但这条评论是解决方案所在。 - Paul
4
不要依赖 size 变量;如果你在网站上工作,请保持 imgwidth 属性。有时候它似乎不能正确显示大小。 - SOFe
2
机器人怎么样?这个链接并没有显示正确的头像:http://github.com/dependabot-preview.png,也不是https://github.com/apps/dependabot-preview.png。 - Bruno Lemos
似乎用户没有上传头像时,即使发送了“size”参数,也始终会返回420x420的图像。例如:https://github.com/asdf.png?size=64 - James Ward
@Paul 谢谢Paul,这个线程非常有用,我能够生成头像。 - raj03

18

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

使用 "/users/:user" 端点,可在返回的 json 中的 "avatar_url" 下找到。

例如,我的头像可以通过访问 此网址 找到。

编辑

还有一种我能想到的有些绕的方法。由于 GitHub 使用 Gravatar,如果您知道帐户关联的电子邮件,请对小写、去除空格的电子邮件地址进行 md5 哈希处理,并构造一个像这样的网址:http://www.gravatar.com/avatar/[md5_here]。


此外,我没有 GitHub 用户名,只有用户显示名称(Foo Bar,而不是 foobar)和电子邮件(从提交详细信息中获取的信息)。 - Fez Vrasta
光是从我的记忆来看,我不认为有任何完全准确的方法可以获取用户的Github头像--因为Git提交可以附加任何电子邮件地址,它不必映射到一个GitHub用户。话虽如此,我相信关于MD5哈希和Gravatar的编辑可能是你最好的选择。 - photoionized
我已经检查了该存储库是GitHub存储库,并且用户仅使用正确的电子邮件进行提交,这是一个好的事情。我不能使用Gravatars,因为许多用户在GitHub上不使用Gravatars(Gravatars已经在我的代码中实现)。 - Fez Vrasta
1
关于 Gravatar 生成的最后一件事,看起来 GitHub 使用默认大小为 460,因此您可以在 gravatar url 的末尾传递 ?size=460,它将给您与其 api 中的 GitHub url 相同的内容。 - photoionized
很抱歉,我不知道有其他解决方案可以直接构建URL。 - photoionized
显示剩余3条评论

3

2
Using GraphQL API v4, 这个也可以。 查询(按用户名)-
{
    user(login: "username") {
        avatarUrl
    }
}

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

-1

看起来 YOUR_USER_ID 必须是数字 ID,而不是 GitHub 用户名。所以恐怕这并没有回答问题。 - broofa
1
真实故事使用电子邮件,不确定是否可能。 使用 Github 用户名:github.com/USERNAME.png - AjCodez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接