浅析github搜索邮箱找不到用户的原因和解决办法

1. 导言

GitHub是程序员和开发者们最喜欢的代码托管平台之一,它提供了很多搜索选项来帮助大家找到自己需要的代码,开源项目,及其他开发者。但是,有的时候我们搜索不到我们想要的东西,尤其是当我们尝试搜索GitHub用户的邮箱时。本文将探讨为何GitHub搜索不到邮箱,及如何解决此问题。

2. GitHub搜索邮箱找不到用户的原因

2.1 GitHub官方隐私政策

GitHub官方隐私政策规定用户的电子邮件地址只有在用户允许其他GitHub用户查看的情况下才能被公开。而且,GitHub提供各种选项来帮助用户隐藏或公开他们的电子邮件地址。因此,如果一个用户不想把他们的电子邮件地址公开,那么你就无法通过搜索来找到他们。

下面是GitHub官方文档里关于私密信息保护的一段话:

Please avoid publishing your email address or other personal information. When you engage with the community, you’re making a conscious decision about what information to share. We encourage you to consider the impact of your choices on your privacy and the privacy of others. We hope you’ll act consistently with our privacy practices and your own privacy principles.

根据官方隐私政策,如果你没法找到一个用户,那么有可能是该用户没有公开他们的邮件地址。

2.2 授权访问限制

当一个GitHub用户从应用或者其他来源申请申请API 访问权限时,他需要授权那个应用或者来源访问他的GitHub信息,其中包括一个全局访问权限。 如果他在访问授权时选择了对邮箱地址进行限制,那么其他用户就无法通过API或者其他方式搜索到他的邮箱地址。

下面是GitHub官方API文档中的授权访问限制解释:

When a user authorizes an application or integration via an OAuth App flow, the user may grant that application access to their GitHub information, including their email address.  

The user can choose to grant this access on an individual basis, or toggle global access to their email address on or off.

If a user chooses to restrict API access to their email address, then the email address is excluded from API results, regardless of how the API is accessed.

3. 如何解决GitHub搜索邮箱找不到用户问题

3.1 查看邮箱隐私设置

如果你无法通过GitHub搜索找到一个用户,首先应该检查他们是否已经公开了他们的电子邮件地址。你可以看,在他们的GitHub个人资料中,找他们的电子邮件地址是否已被公开。如果该用户没有公开邮箱地址,则你无法通过GitHub搜索来查找他们。

下面是如何在GitHub寻找电子邮件地址的步骤:

打开GitHub,打开用户个人资料页面。

查看页面的右下角,查看是否有“mailto”链接。 如果有,邮件地址已经公开了。

如果该用户没有公开他们的邮件地址,你就看不到“mailto”链接。在这种情况下,最好的方法是与该用户联系,询问他们是否愿意公开他们的邮件地址。

3.2 查看授权访问

如果你正在使用API或其他方式访问GitHub信息,而无法搜索到一个用户的电子邮件地址,则该用户可能已经选择了授权访问限制。在这种情况下,你需要联系该用户并请求他授权访问权限。 请确保你有充足的理由来请求访问权限,并向用户解释为什么他们应该给你授权。否则,他们可能会拒绝你的请求。

下面是如何请求GitHub API访问权限:

打开GitHub,打开用户个人资料页面。

通过API请求权限

使用POST或PUT方法发送请求,content-type要设置为application/json。你需要包含用户的OAuth授权令牌和scopes。scopes必须含有user,并且也可以包含其他scopes。下面是一个使用curl请求GitHub API访问权限的例子:

curl -H 'Authorization: token YOUR_TOKEN' 

-d '[ "user", "read:user" ]'

https://api.github.com/user/emails

等待GitHub处理你的请求

在GitHub认证中检查你的授权

访问个人设置页面的Authorized applications页面

查找代表你APP的令牌

仔细查看授予该APP的权限

4. 结论

GitHub是最受开发者和程序员欢迎的代码托管平台之一,它提供了很多搜索选项来帮助大家找到自己需要的代码,开源项目,及其他开发者。但是,对于想要搜索一个GitHub用户的电子邮件地址的人来说,他们可能会遇到一些限制。这些限制包括用户的隐私政策,以及他们可能设置的授权访问限制。

如果你无法找到GitHub用户的电子邮件地址,首先应该检查其是否已公开其电子邮件地址。 如果没有,你将需要联系他们并请求访问权限。请确保你在请求权限之前仔细阅读GitHub的隐私政策,并向用户解释为什么你需要他们的电子邮件地址。

虽然有些限制看起来很麻烦,但是它们实际上保护了每个GitHub用户的隐私和数据安全。所以任何访问用户数据的请求都需要特别小心和审慎。