获取Facebook用户ID并从iOS应用程序传递到MySQL?

时间:2012-04-28 23:06:50

标签: php iphone mysql xcode

我开发了一款成功使用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"];

1 个答案:

答案 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登录。我不打算发布所有代码,因为在他们的“入门”文档中有关于该部分的分步说明。