Facebook 我应该将用户的好友列表保存在我自己的数据库中吗?

标签 facebook persist

我正在开发一个连接到 Facebook 的应用程序 (Flash/AS3)。用户登录后,我需要获取他的 friend 列表(仅 ID),检查他们中是否有人是我的应用程序的用户(通过数据库上的注册表),通过向每个用户添加一个标志来更新列表应用程序用户,然后使用更新后的列表执行操作。我的问题是:

  • 我应该在应用程序启动时询问好友列表、执行检查并将数据检索到 Flash 吗?我必须等待 Facebook 的响应以及执行脚本 (php) 的时间;我只有一张包含应用程序用户信息的表;

  • 我应该将所有用户的 friend 保存在我自己的数据库中,并有一个 cron 作业自动更新(也许每天一次)我的数据库,即询问我的每个应用程序用户的 friend 列表,执行检查,删除重复等?在本例中,我将有一个包含应用程序用户的表、一个包含所有用户 friend 的表(当然可能有数千个)以及一个用于关联之前两个表的 user_friends 表;

注释: - 我正在使用 PHP/cURL 向 Graph API 发出请求 - MySQL数据库 - 我可能还会检查每个用户的 Twitter 和 G+ 好友(因此脚本可能需要更多时间,尽管我可以通过单独的步骤遍历每个网络)

您认为最好的方法是什么?我不介意应用程序中有一个“加载”期。此时,我已经几乎完成了第一种方法,但一位同事建议使用第二种方法,这样应用程序用户就不必等待 Facebook/Twitter/G+/script 响应。但是……这不是浪费资源吗?我的意思是,Facebook 等已经拥有用户/ friend 的连接......通过在我自己的数据库中复制它并让 cron 作业对应用程序用户 Conceal 更新,我会得到什么吗?

希望我说清楚了!谢谢!

最佳答案

我曾经遇到过类似的问题。您将无法定期更新数据库,因为您通常需要事件用户(=访问 token )来检索该用户的好友列表。以前,您可以请求“offline_access”权限,但此权限已弃用: https://developers.facebook.com/roadmap/offline-access-removal/

我决定在我的应用程序首次启动时将所有 friend 的 ID 写入服务器上的文本文件(用户 ID 作为文件名:123456789.txt)(显示一个旋转器和一条文字“正在加载 friend ...” ”)。之后每当应用程序启动时,我都会从该文件中提取 ID。

您可以通过检查该文件的创建日期来触发该文件的更新。如果它“太旧”,请在读取所有好友 ID 后删除并重新创建它。这样,文件缓存将在后台创建,而不会被用户注意到。

关于Facebook 我应该将用户的好友列表保存在我自己的数据库中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9994702/

相关文章:

javascript - 访问属性 'Arbiter' 的权限被拒绝

java - 几次调用后,facebook android SDK java.io.EOFException

java - 将一个实体持久化到另一个实体之后 ~ Netbeans、J2E、bean、EntityManager

JPA - 在不调用 persist() 的情况下保存更改

apache-spark - 写入配置单元表后停止自动取消保留数据框

hibernate - 当集合没有改变时停止 Hibernate 更新集合

android - 使用 SDK 3.5 中的提要对话框在 friend 的墙上发帖

ios - 传递参数以将项目发布到 Facebook

python - 有没有办法获得 Facebook 群组的潜在新成员所提问题的答案?

C#:Microsoft.Office.Interop.Excel.Range 的 ID 字段未与 Excel 工作表一起保存