【问题标题】:Best way to find or match user's contacts to Facebook friends?查找或匹配用户联系人与 Facebook 好友的最佳方式?
【发布时间】:2012-01-27 20:30:22
【问题描述】:

我有一个用户,该用户有一堆联系人(一些联系人有“姓名”,而所有联系人都有“电子邮件”)。联系人有一个 image_url 字段,我想显示该联系人的图片。我想从 Facebook 中提取这些图片。

假设 User.first 拥有在 Facebook 注册的电子邮件“joe@test.com”。

用户拥有_许多联系人&& 联系人属于_用户。

User.first.contacts 
#<Contact id: 1, ctct_name: "Stacy Blah", ctct_email: "stacy.blah@gmail.com", user_id: 1, img_url: nil>, 
#<Contact id: 2, ctct_name: nil, ctct_email: "dick.tracy@gmail.com", user_id: 1, img_url: nil>, 
#<Contact id: 3, ctct_name: "John Doe", ctct_email: "john_doe@gmail.com", user_id: 1, img_url: nil>

我的网站上有 fb_graph(使用 Devise :omniauthable)。

当 User.first 连接到 Facebook 时,我可以访问他们的 fb 令牌。所以我可以这样做:

facebook_user = FbGraph::User.new('me', :access_token => access_token).fetch
user_friends = facebook_user.friends

现在找到 User.first.contacts 或将其匹配到 user_friends 的最佳方法是什么? 理想情况下,我只需在 Facebook 连接中搜索电子邮件,如下所示:

email = Contact.first.ctct_email
search = FbGraph::User.search(email, :access_token => access_token = user['credentials']['token']) 
Contact.first.img_url = search[0].picture # or something like this

但 Facebook API 不会公开 user_friends 电子邮件!那么,我能做些什么呢?

我一直在尝试根据姓名进行匹配,但遇到了两个问题:(1)contacts.name 可能为 nil,以及(2)user_friends.select {|f| f.name.include?("John Doe")} 在名称不完全匹配的情况下过于严格(例如,contact.name = "John Doe" 但 Facebook 将此人称为 "John X. Doe")。

我也尝试使用名称参数 = User.first.contacts[2].name 搜索 FBGraph::User.search。

search = FbGraph::User.search("John Doe", :access_token => access_token = user['credentials']['token']) 

但是我遇到了一个严重的歧义消歧问题——搜索“John Doe”会带来成千上万的 Facebook 用户,而且他们不仅限于 user_friends!

这当然是可能的。我见过可以从 Facebook 为给定联系人提取图像的服务,其信息与电子邮件一样少。

感谢您的帮助!!

【问题讨论】:

    标签: ruby-on-rails search facebook pattern-matching


    【解决方案1】:

    您可以通过电子邮件地址搜索 Facebook 用户:

    https://graph.facebook.com/search?q=zuck@fb.com&type=user&access_token=...

    请注意,截至 2011 年 12 月 21 日,有一个 accepted bug,此功能目前无法使用。

    【讨论】:

    • 该查询不返回任何数据。还有其他想法吗?
    • 有趣 - 看起来 Facebook 最近取消了这个功能。这曾经可以工作,因为我多次使用此功能。如果您在搜索框中输入 Zuck 的电子邮件地址,它仍然会返回他的结果,因此他们只是为 3rd 方开发人员禁用了该功能。 Facebook 又一次未宣布的重大变化。
    • 这显然是一个已停止工作的错误:developers.facebook.com/bugs/292220680814266
    猜你喜欢
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多