IOS Facebook Auth - 保持好友列表更新

Posted

技术标签:

【中文标题】IOS Facebook Auth - 保持好友列表更新【英文标题】:IOS Facebook Auth - Keep Friends List Updated 【发布时间】:2015-09-10 14:44:31 【问题描述】:

我在一个 ios 应用程序中使用 Facebook 登录和课程

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions:

返回一个访问令牌。该 Token 被发送到后端,并通过 Graph Call 获取用户信息。

我想更新 facebook 好友列表,这样每次用户登录时,他的 facebook 好友列表都会更新。

我对这样做的不同策略感到困惑:

    用户打开应用 使用 [FBSDKAccessToken currentAccessToken] 检查 Facebook 令牌 如果有 currentAccessToken,将其发送到服务器,通过 Graph Call (Server Facebook) 获取好友列表

该列表应该存储在后端还是简单地返回给客户端并存储在 UserDefaults 中?

这是对服务器执行此操作的首选方式,还是可以直接从客户端向 facebook 进行一些调用(以防列表未存储在服务器端)?

感谢您的见解

【问题讨论】:

【参考方案1】:

我不知道这是否是首选方式,但您可以使用以下方式为客户端上的朋友列表进行图形调用:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                              initWithGraphpath:@"/me"
                              parameters:@@"fields" : @"friends"];

[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) 
    // Handle the result
];

或者如果您希望用户的好友列表使用:

@@"fields" : @"friendlists"

【讨论】:

感谢您的回答。没错,可以使用 FBSDKGraphRequest 来获取特定数据。我不太清楚的是,一旦你有了令牌,用哪种方式获取数据: 1. 应该是 SERVER FACEBOOK 2. 还是 FACEBOOK CLIENT,然后保存数据 CLIENT SERVER 嗯,你总是想看看你存储数据的位置,并尝试建立一个简单的架构,这样你的所有客户端都可以与该数据保持同步......也是如此到SERVER FACEBOOK,然后在那里做你的朋友列表更新检查,然后如果有新数据,更新你存储的数据,然后将其推送到客户端。这种架构将允许客户端与服务器保持同步,服务器与 facebook..soo -> -> -> -> 保持同步 另一种思考方式是让您的客户“愚蠢而愚蠢”。您的客户是否需要知道好友列表是否更改?可能不是。客户只需要完整和最新的列表。您的数据库是需要知道更改的人。所以给你的数据库(服务器)那个行为,然后让你的客户成为你数据库的观察者。

以上是关于IOS Facebook Auth - 保持好友列表更新的主要内容,如果未能解决你的问题,请参考以下文章

通过 Facebook iOS SDK 检索 Facebook 好友列表

iOS:通过分页获取 Facebook 好友

在 iOS 中获取 Facebook 好友列表

为啥在ios中重新打开会话后无法访问facebook好友列表

SmartFox Server Facebook 好友整合 iOS

在 iOS 中获取 Facebook 好友时出错