在 iOS 中本地存储 Facebook 用户数据

Posted

技术标签:

【中文标题】在 iOS 中本地存储 Facebook 用户数据【英文标题】:Store Facebook User Datas Locally in iOS 【发布时间】:2014-02-08 14:32:10 【问题描述】:

我有两个与 ios 与 Facebook API 相关的问题。

1) 用户点击登录btn获取用户数据时如何自定义facebook登录视图。

2) 在我的应用程序中,我想使用 facebook API。通过这种方式,我可以在下面的方法中检索用户数据。但是我怎样才能将这些用户数据保存在我的本地应用程序中。

非常感谢您的帮助!!!

[FBSession openActiveSessionWithReadPermissions:@[@"email",@"user_location",@"user_birthday",@"user_hometown"]
                                   allowLoginUI:YES
                              completionHandler:^(FBSession *session, FBSessionState state, NSError *error) 

                                  switch (state) 
                                      case FBSessionStateOpen:
                                          [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error)


                                              if (error) 


                                                  NSLog(@"error:%@",error);


                                              
                                              else
                                              

                                                  // retrive user's details at here as shown below
                                                  NSLog(@"FB user first name:%@",user.first_name);
                                                  NSLog(@"FB user last name:%@",user.last_name);
                                                  NSLog(@"FB user birthday:%@",user.birthday);
                                                  NSLog(@"FB user location:%@",user.location);
                                                  NSLog(@"FB user username:%@",user.username);
                                                  NSLog(@"FB user gender:%@",[user objectForKey:@"gender"]);
                                                  NSLog(@"email id:%@",[user objectForKey:@"email"]);
                                                  NSLog(@"location:%@", [NSString stringWithFormat:@"Location: %@\n\n",
                                                                         user.location[@"name"]]);

self.fbUserDataDict = [NSDictionary dictionaryWithDictionary:user];

                                              
                                          ];
                                          break;

                                      case FBSessionStateClosed:
                                      case FBSessionStateClosedLoginFailed:
                                          [FBSession.activeSession closeAndClearTokenInformation];
                                          break;

                                      default:

                                          break;
                                  
                               ];

【问题讨论】:

保存数据时不要忘记征求用户同意。否则将是非法的webmasters.stackexchange.com/questions/24734/… 嗨 pacman321,我只提到了“基本帐户信息”,例如:姓名、电子邮件、性别、生日、当前城市和头像 URL。 【参考方案1】:

使用Parse 之类的东西在本地存储它们怎么样?您也可以使用 SQLite。虽然你介意扩展一下你想做什么?只需将它们存储在本地?

【讨论】:

HI Random ,我试图将这些值存储在 NSString 中,例如 name 、 email 、 gender ,但在方法内部,我遇到了 switch case 错误,请您提及一个示例,我的意思是上面的代码块你能写一个步骤来将名称存储到 NSString... 为此,我需要一个用户在他们的 Facebook 电子邮件和名称的支持下轻松登录我的应用程序。 我不太明白,NSString 就是一个简单的对象,里面保存着不可变的字符串,你说要本地存储数据,所以必须有本地数据库,比如SQLite。 HI random 你是对的,但例如我说要存储至少 nsstring。 您好,请再次访问我的代码,因为现在我尝试将 fb 用户字典添加到我的字典中,但我收到如下错误:

以上是关于在 iOS 中本地存储 Facebook 用户数据的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot OAuth2 - 使用本地用户数据库向 Facebook 进行身份验证

iOS Facebook SDK:性别被本地化

如何使用带有 iOS SDK 的 Facebook 身份验证通过 DynamoDB 和 Cognito 存储用户信息

如何使用 Facebook sdk 将 Facebook 用户个人资料信息存储在数据库中?

如何在 Facebook 等应用程序图标上显示通知计数?

用户登录后如何使用社交 API(如 facebook)将数据存储在数据库中