2

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

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

或者

  • 我是否应该将所有用户的朋友保存在我自己的数据库中并有一个 cron 作业自动更新(可能每天一次)我的数据库,即询问我的每个应用程序用户的朋友列表,执行检查,删除重复项等ETC ?在这种情况下,我将有一个包含应用程序用户的表,一个包含所有用户朋友的表(当然可能是数千个)和一个 user_friends 表来关联之前的两个表;

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

你认为最好的方法是什么?我不介意在应用程序中有一个“加载”期。在这一点上,我已经完成了第一种方法,但一位同事建议使用第二种方法,这样应用程序用户就不必等待 Facebook/Twitter/G+/script 响应。但是……这不是浪费资源吗?我的意思是,Facebook 等已经有用户/朋友的连接......我会通过在我自己的数据库中复制它并让 cron 工作对应用程序用户隐藏更新来获得任何东西吗?

希望我说清楚了!谢谢!

4

1 回答 1

2

我曾经遇到过类似的问题。您将无法定期更新数据库,因为您通常需要一个活动用户(=访问令牌)来检索该用户的朋友列表。以前,您可以请求“offline_access”权限,但不推荐使用此权限: https ://developers.facebook.com/roadmap/offline-access-removal/

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

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

于 2012-04-04T14:19:40.163 回答