使用 iOS SDK 4 提取当前 facebook 用户名

Posted

技术标签:

【中文标题】使用 iOS SDK 4 提取当前 facebook 用户名【英文标题】:Extract current facebook username using iOS SDK 4 【发布时间】:2011-02-23 14:23:43 【问题描述】:

我正在使用 Graph API 获取 facebook 用户信息如下:

[facebook requestWithGraphpath:@"me" andDelegate:self];

我该怎么做?我知道服务器响应是 JSON 对象的形式,但不知道如何解析它。

【问题讨论】:

【参考方案1】:

我没有找到帮助我解决此问题的链接。

这是我使用的代码(request:didLoad: 是一个 FBRequestDelegate 回调):

- (void)request:(FBRequest *)request didLoad:(id)result 
if ([result isKindOfClass:[NSDictionary class]]) 

    NSDictionary* hash = result;

    NSString *username = (NSString*)[hash valueForKey:@"name"];

    [[NSUserDefaults standardUserDefaults] setObject:username forKey:@"Username"];

[self publishStream]; // publishStream is a custom methods of mine to create the post to publish
;

我记得我看过 FB ios api 代码,可能还有 this 和 this

我希望这对你有用。

再见,

弗兰

【讨论】:

嗨,我试过了,但在 didLoadRawResponse 中它给出了“OAuthException”:“必须使用活动访问令牌来查询有关当前用户的信息”。所以我猜,它没有达到请求 didLoad。 Facebook iOS SDK 4 自动检测当前用户登录,即使在授权 facebook 应用程序之后,是否需要获得更多授权才能访问用户名?以及如何? 是否调用了 fbDidLogin?我有一个问题 fbDidLogin 从来没有被最后一个 api 调用过,所以我找到了 fb october api 并解决了。当调用 fbDidLogin 时,我这样做 [[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"AccessToken"]; [[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"ExpirationDate"]; [[NSUserDefaults standardUserDefaults] 同步]; [_facebook requestWithGraphPath:@"me" andDelegate:self]; 而在 viewDidLoad... _facebook = [[Facebook alloc] init]; _facebook.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"AccessToken"]; _facebook.expirationDate = (NSDate *) [[NSUserDefaults standardUserDefaults] objectForKey:@"ExpirationDate"]; _permissions = [[NSArray arrayWithObjects: @"publish_stream", @"read_stream", @"offline_access",nil] 保留]; 不,fbDidLogin 没有被调用,可能是因为我使用的是最新的 API,如你所说。但是不建议总是使用最新的 API 吗?那么,这意味着获取 october api 将解决问题吗?有下载链接吗? 是的,推荐使用最新的api。考虑到我使用它来弹出 fb 对话框,并且使用最新的 api 我没有成功获得它......打开了一个 web 视图,这不是我想要的。我认为您应该在 *** 或 fb 开发者论坛上针对您的具体问题提出另一个问题。但是,旧的 api 在这里:cl.ly/3PPI【参考方案2】:

我已经在这里回答了这个问题How to retrieve Facebook response using Facebook iOS SDK

【讨论】:

感谢 Yogesh 的回复。不过你说的我已经试过了。提取信息时出现身份验证错误。我已经针对这个特定问题提出了单独的问题。能解决的可以回答。 @WJK 你得到什么样的错误,你在哪里发布问题,如果你可以发布一些代码,我可以帮助你,因为我最初很挣扎,然后花了很多钱现在所有的事情都对我有用。希望能帮到你。 你真是太好了。 Here 是包含代码和错误的问题。谢谢你

以上是关于使用 iOS SDK 4 提取当前 facebook 用户名的主要内容,如果未能解决你的问题,请参考以下文章

iOS Facebook SDK 在设备上进行身份验证后未重定向

Facebook iOS SDK:获取专辑封面图片

Facebook iOS SDK 和护照-facebook 身份验证

Facebook SDK 错误 Domain=com.facebook.sdk Code=5 在 ios 中获取好友列表时

如何从 facebook ios sdk 3.1 中提取 facebook 电子邮件?

iOS SDK中当前位置的方位