Facebook SDK FBGraphUser 无法存储本地副本

Posted

技术标签:

【中文标题】Facebook SDK FBGraphUser 无法存储本地副本【英文标题】:Facebook SDK FBGraphUser can't store local copy 【发布时间】:2013-03-20 12:18:05 【问题描述】:

我已经为一个项目启动了 Facebook 集成,但遇到了问题。我正在尝试将登录的用户存储为本地对象,以便以后可以引用这些信息,但我似乎无法保留这些信息。

这是我获取用户数据的函数:

 if(_session.isOpen)
 
    [FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession *session,
                                                      FBSessionState state,
                                                      NSError *error)
     

         [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection,
                                                    NSDictionary<FBGraphUser> *user,
                                                    NSError *error)
          
            if(!error)
            
                NSLog(@"Username: %@",user.name);

                [_user initWithDictionary:user];
                NSLog(@"Username: %@",[_user objectForKey:@"name"]);

            
            else
            
                NSLog(@"Couldn't get user details!");

            

          ];
     ];

//endif

在这种情况下,NLog 给出“用户名:(null)”

我对 ObjC 和 Facebook 都很陌生,所以我不确定自己做错了什么。另外,我尝试创建一个成员变量:

@property (strong, nonatomic) NSDictionary<FBGraphUser> *loggedInUser;

以前我存储用户的代码是

if(!error)
            
                NSLog(@"Username: %@",user.name);

                _user = user;
                NSLog(@"Username: %@", _user.name);

            
            else
            
                NSLog(@"Couldn't get user details!");

            

由于这些都不起作用(第二个起作用,因为第二个 NSLog 提供了正确的变量,但后来尝试在此函数之外访问它导致崩溃)我只能假设我没有正确存储信息。

有人可以指点我做错了什么吗?

【问题讨论】:

【参考方案1】:

您需要打印user.username 而不是user.name

【讨论】:

我在尝试访问 user.username 时得到空值

以上是关于Facebook SDK FBGraphUser 无法存储本地副本的主要内容,如果未能解决你的问题,请参考以下文章

使用 Facebook iOS SDK 验证和登录我的应用

如何从原生 iOS Facebook SDK 获取用户兴趣?

Facebook iOS SDK 返回错误“com.facebook.sdk 错误 4”

Facebook SDK:在IOS7上无法完成操作(com.facebook.sdk错误2)

在 Facebook-Ios-Sdk 中关闭 Facebook 会话

无法使用 Facebook C# SDK 注销 Facebook