gpt4 book ai didi

ruby-on-rails - 查找用户联系人或将其与 Facebook 好友匹配的最佳方式?

转载 作者:行者123 更新时间:2023-12-04 06:17:49 25 4
gpt4 key购买 nike

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

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

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

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 token 。所以我可以这样做:

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

现在查找 User.first.contacts 或将 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 为特定联系人提取图像的服务,其信息与电子邮件一样少。

谢谢你的帮助!!

最佳答案

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

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

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

关于ruby-on-rails - 查找用户联系人或将其与 Facebook 好友匹配的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com