我开发了一款成功使用Facebook Connect的应用程序,允许用户登录。登录后,用户可以将照片上传到我的服务器。这些照片/图像的URL链接存储在MySQL中。我需要将他们的Facebook用户ID链接到我的数据库中的照片。所以我的问题是:
如何在Xcode中获取用户ID? 然后我如何将它传递给MySQL? 所有这些代码都是什么样的?
为了回应Joel的回答,我如何将Facebook凭据添加到NSUserDefaults?我知道如何存储一个值(如下),但如何为facebookID,userName和userEmail执行多个值?
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"username"] == nil) //we haven't saved anything yet
[defaults setObject:authenticatedUsersName forKey:@"username"];
答案 0 :(得分:2)
如上面的评论所示,存储Facebook用户ID没有任何问题。令牌可以在会话之间以及从设备之间更改。此外,如果您有多个应用程序(比如web / android / iphone),您希望跨设备识别用户。实际上,这是您应该唯一引用用户的方式。
无论如何,要获得fid,请执行以下操作:
在fbDidLogin委托方法中,添加以下行:
[facebook requestWithGraphPath:@"me" andDelegate:self];
然后像这样设置请求委托:
- (void)request:(FBRequest *)request didLoad:(id)result {
NSString *facebookId = [result objectForKey:@"id"];
NSString *userName = [result objectForKey:@"name"];
NSString *userEmail = [result objectForKey:@"email"];
//do whatever you need to do with this info next
//(ie. save to db, pass to user singleton, whatever)
}
PS。上面的代码假设您已经实现了Facebook登录。我不打算发布所有代码,因为在他们的“入门”文档中有关于该部分的分步说明。