Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook我应该保留一个用户';我自己的数据库中有谁的朋友列表?_Facebook_Persist - Fatal编程技术网

Facebook我应该保留一个用户';我自己的数据库中有谁的朋友列表?

Facebook我应该保留一个用户';我自己的数据库中有谁的朋友列表?,facebook,persist,Facebook,Persist,我正在开发一个连接到Facebook的应用程序(Flash/AS3)。用户登录后,我需要获取他的好友列表(仅ID),检查他们中是否有人是我的应用程序的用户(通过数据库上的注册表),通过向同时也是应用程序用户的每个用户添加标志来更新列表,然后对更新后的列表执行操作。我的问题是: 我是否应该请求好友列表,执行检查并检索应用程序启动时要闪烁的数据?我必须等待Facebook的回复,再加上执行脚本(php)的时间;我只有一个表,上面有应用程序的用户信息 或 我是否应该将用户的所有好友都保存在我自己

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

  • 我是否应该请求好友列表,执行检查并检索应用程序启动时要闪烁的数据?我必须等待Facebook的回复,再加上执行脚本(php)的时间;我只有一个表,上面有应用程序的用户信息

  • 我是否应该将用户的所有好友都保存在我自己的数据库中,并使用cron作业自动更新(可能每天一次)我的数据库,即请求每个应用程序用户的好友列表、执行检查、删除重复项等?在这种情况下,我将有一个包含应用程序用户的表,一个包含所有用户朋友的表(当然可能有数千个),以及一个与之前两个表相关的user\u friends表
注: -我使用PHP/cURL向Graph API发出请求 -MySQl数据库 -我可能还会为每个用户检查Twitter和G+好友(因此脚本可能需要更多的时间,尽管我可以分步骤浏览每个网络)

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


希望我说清楚!谢谢

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

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


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

我没有意识到“脱机访问”已经(即将)被弃用:/。所以我想你是对的-如果代币不再是“永久性的”,自动更新将无法工作。不过,您的解决方案似乎可以保留朋友ID的缓存。但是,你认为这是必要的吗?Facebook检索好友列表需要“那么长时间”吗?无论如何,我会保持应用程序现在的状态(我的问题中的选项1),当我准备好所有其他东西后,我会做一些测试,然后重新开始。谢谢!;)我刚刚意识到Graph API(developers.facebook.com/docs/reference/API/realtime)中有“实时更新”,这意味着可以订阅某些字段/连接的更改(用户的好友列表就是其中之一),facebook本身会将更改发布到我们选择的URL请求中,允许自定义应用程序数据更新/缓存。您可以通过应用程序访问令牌获取好友列表