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

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

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

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

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

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

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

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

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

感谢您的见解

【问题讨论】:

    标签: ios facebook facebook-graph-api


    【解决方案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 -> -> -> -> 保持同步
    • 另一种思考方式是让您的客户“愚蠢而愚蠢”。您的客户是否需要知道好友列表是否更改?可能不是。客户只需要完整和最新的列表。您的数据库是需要知道更改的人。所以给你的数据库(服务器)那个行为,然后让你的客户成为你数据库的观察者。
    猜你喜欢
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多