从电子邮件地址获取Facebook头像

15
我试图根据用户的电子邮件地址获取其 Facebook 配置文件图片。实际上,我想为我的用户提供使用 Gravatar 或 Facebook 的选项。但是,我所知道的唯一获取用户 Facebook 图片的方法是通过以下方式: http://graph.facebook.com/[FBOOK USERNAME]/picture?type=large 由于用户名在 Facebook 和我的网站之间可能会有所不同,因此我想通过电子邮件地址而不是用户名来执行此操作。如何通过电子邮件地址查询某人的 Facebook 配置文件图片?

你真的能做到吗?根据可能是私人用户数据的电子邮件地址来启用检索Facebook数据似乎有一些安全问题。当然,Facebook对于私人数据的定义可能比其他公司更宽松。 - Chris Farmer
我正在寻找同样的东西。我考虑在URL中使用user.name,但这仅适用于用户在www.facebook.com/username上设置了Facebook用户名。 - Jorre
似乎 Sparrow (http://sparrowapp.com/)电子邮件客户端正在进行此操作,但需要您对Facebook进行身份验证。 - Levi Putna
3个回答

24

我看到这个问题已经有几年了,但是可以使用Graph API采用相同的搜索方法:

GET https://graph.facebook.com/search?q={EMAIL}&type=user

您可以在Graph API Explorer上尝试此操作。您无法直接获取个人资料图片,但您可以获得用户ID,然后轻松地使用它来获取公共个人资料图片。

https://graph.facebook.com/{UID}/picture


确切地说,这是一个非常好的答案。 :) 很多人忽略的一点是,在使用图形 API 的时候,你只能获取到用户的公共头像。如果用户的设置是私有的,你将无法获取它(我想大多数人都会同意这样做)。 - LloydDobbler
10
需要用户访问令牌才能请求此资源。 - Adeem
5
很遗憾,无法再以这种方式进行搜索了。这种方式已经被滥用得太多。 - Simon_Weaver

5
似乎没有官方的方法可以做到您所要求的内容。Facebook似乎故意将此项服务关闭,可能与隐私有关。但是通过几个屏幕抓取步骤,这实际上非常容易实现:
  1. 访问http://www.facebook.com/#!/search.php?q=#{USERS_EMAIL_ADDRESS}&type=all&init=srp

  2. 如果页面返回“找不到您的查询结果。”则他们没有个人资料。

  3. 否则,该页面将包含该电子邮件地址用户的缩略图。(类似于http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs227.ash2/48219_72120057_3223_q.jpg

如果有需要,我可以在大约5分钟内编写一个Sinatra应用程序来实现此操作。
但我认为Gravatar和Facebook应该成为朋友。

1
我真的很喜欢这个 - 我不会使用屏幕抓取,但我肯定可以使用搜索结果自动获取用户的Facebook ID,并在我的问题中使用该方法。然而,仅当您登录时才能进行搜索,这使得我无法以编程方式完成此操作。 - Mala

-2
你想要做的事情是 Facebook Connect 存在的一部分。
使用他们不太聪明命名的 XFBML,您可以直接请求图像: <fb:profile-pic uid="1256100362" facebook-logo="true" size="thumb"> </fb:profile-pic> 但首先必须使用 FB Connect 实现登录...

1
这仍然使用UID,但是您可以通过在您提到的情况下使用http://graph.facebook.com/1256100362/picture?type=large而无需使用Facebook Connect来完成。 - Mala
3
是的,不能像Gravatar一样使用md5(电子邮件)来实现这一点真是遗憾。 - Jorre

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