通过已知的电子邮件地址查找Facebook用户(url到个人资料页面)

And*_*ler 30 email search facebook

我有一个电子邮件地址,想知道是否有Facebook用户链接到此地址.如果有,那么我想检索此用户个人资料页面的网址并将其保存在某处.我没有 Facebook应用程序,但是,如果有必要,我会使用现有的帐户数据登录到Facebook并执行任务.

我认为这将是一项轻松的任务,但不知何故并非如此.我阅读了Graph API文档,在那里您可以找到有关如何搜索公共数据的说明.它说格式是:
https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE

但随着电子邮件地址尝试这种q PARAM和用户类型没有在进一步的信息结果PARAM OAuthException"访问令牌才能请求该资源." 但是,如果单击示例搜索链接,Facebook将生成一个URL,其中包含与当前登录用户相关的提及的访问令牌.使用此令牌执行搜索可获得预期结果.但我无法弄清楚如何在登录后获得此用户会话访问令牌.每次我搜索如何获取访问令牌时,我只能找到有关Facebook应用程序的信息并检索基本或特定数据访问的权限.正如我所提到的,这不是我想要的,因为我没有,也不需要Facebook应用程序.

由于Facebook在示例链接中提供了所需的令牌,我认为它也不应该成为问题.或者他们只是因为主场优势而拥有它?此外,FacebookOutlook社交连接器提供程序只能通过电子邮件地址(以及提供的帐户数据)检索Facebook数据.所以我想,如果微软能做到这一点,我也应该做同样的事情.

最后但并非最不重要的是,这更令人沮丧,因为我理论上和实际上已经能够通过搜索电子邮件地址找到用户个人资料网址.我甚至不必登录Facebook.它不是官方的API方式.
如果我执行Web请求,http://www.facebook.com/search.php?init=s:email&q=example@domain.com&type=users我会得到预期的搜索结果.问题是我必须解析HTML代码并提取url(这没关系),结果页面可能会发生变化,并且很容易破坏我的方法来提取url(有问题).

那么有人知道完成给定任务的最佳方法是什么?

Dav*_*Sag 15

对此的明确答案来自Facebook本身.在今天发布的https://developers.facebook.com/bugs/335452696581712上,Facebook开发者说

The ability to pass in an e-mail address into the "user" search type was
removed on July 10, 2013. This search type only returns results that match
a user's name (including alternate name).
Run Code Online (Sandbox Code Playgroud)

所以,唉,简单的答案是你不能再通过他们的电子邮件地址搜索用户了.这很糟糕,但那是Facebook的新规.


bka*_*aid 7

只需使用图形API与此URL格式: https://graph.facebook.com/search?q=zuck@fb.com&type=user&access_token= ...您可以轻松创建一个应用程序在这里抢一个访问令牌,它在这里.我相信你每600秒会得到600个请求,尽管没有记录.

如果您批量执行此操作,则可以批量使用20个电子邮件地址中的批处理请求.这可能有助于速率限制(我不确定您是否每600秒获得600个批量请求或600个单独请求).

  • 1)绝对不允许伪造账户.2)临时申请不起作用; 您无法为此Graph API查询使用应用程序access_token.你必须使用真正的人类access_token.3)允许通过在您的朋友帐户之间切换来限制速率限制,但会使您和您的朋友帐户暂时被阻止长达24小时.(我从经验中说明了这一点.)这就是为什么我的赏金要找到更好的方法. (3认同)
  • 看起来Facebook最近已经删除了使用用户访问令牌通过电子邮件查找的功能. (3认同)
  • 绝对允许通过Graph API搜索电子邮件.我使用多个访问令牌的唯一原因是因为我对速率限制不耐烦.如果您保持在您的价格限制范围内(或者如果您超过限制,请等待几分钟后再尝试),您将没有任何问题. (2认同)

Dan*_*ich 7

为了回应这里提交的错误:http://developers.facebook.com/bugs/167188686695750,Facebook工程师回答说:

这是设计上的,搜索用户仅仅是用户到用户功能,用于寻找新朋友或通过电子邮件搜索以在Facebook上查找现有联系人.StackOverflow上提到的"抓取"特别违反我们的服务条款https://www.facebook.com/terms.php,事实上,在Facebook上搜索用户的唯一合法方式就是您是用户.


one*_*end 5

也许这有点晚了但我找到了一个网站,通过知道电子邮件addreess提供社交媒体帐户详细信息.它是https://www.fullcontact.com

您可以在那里使用Person Api并获取信息.

这是一种获取:https://api.fullcontact.com/v2/person.xml?email = someone @****&apiKey =********

还有xml或json选择.


Man*_*era 0


警告:旧的和过时的答案。不使用


我认为您将不得不采用最后一种解决方案,即抓取搜索结果页面,因为您只能使用 API 通过电子邮件搜索那些已授权您的应用程序的用户(并且您将需要一个,因为 FB 的令牌示例中提供的内容有一个到期日期,并且您需要扩展权限才能访问用户的电子邮件)。

我没有尝试过但我认为它同样受到限制的唯一方法是 FQL。就像是

SELECT * FROM user WHERE email 'your@email.com'
Run Code Online (Sandbox Code Playgroud)