问题描述
|
我最近下载了Facebook iPhone演示应用程序。我做了几次尝试来掌握身份验证过程,但我完全感到困惑。在此版本的API中,似乎有很多示例代码已过时。
在主视图控制器的.m文件中,开始时具有以下内容:
#import \"FBConnect.h\"
需要Facebook信息的按钮使用此行,与演示应用程序相同:
[_facebook requestWithGraPHPath:@\"me\" andDelegate:self];
这将调用以下方法:
- (void)request:(FBRequest *)request didLoad:(id)result {
我已经将我的功能修改为这种方法。我从Facebook提取了一些我需要的东西,然后通过HTTP POST命令将它们发送到我的后端。例如,[result objectForKey:@ \“ id \”]返回id,[result objectForKey:@ \“ name \”]返回名称。但是,[结果objectForKey:@ \“ access_token \”]不会返回任何内容。这非常令人沮丧,因为我需要将访问令牌传递给我的Google App Engine用户管理后端以创建新用户。因此,希望我所包含的代码能够使我的认证策略变得清晰(无论它是什么)。有谁知道我在这种情况下如何获得访问令牌?如果您可以帮助我确定需要包含哪些头文件,我将不胜感激。
谢谢,
约翰
解决方法
我正在做与您完全相同的事情。我正在发出自己的HTTP请求,因此我需要accessToken,此外,iOS Facebook SDK甚至在没有过期请求的情况下都不会记住过去启动时的accessToken!
调用[_facebook authorize:permissions委托人:self]之后;在fbDidLogin委托调用中,您可以轻松拉出(假设您在_facebook中保留了facebook对象):
- (void)fbDidLogin {
NSString *accessToken = _facebook.accessToken;
NSDate *expirationDate = _facebook.expirationDate;
}
Voilà。
要通过应用启动来处理持久性,您可以保存此数据并在任何请求之前手动设置这些访问器。
,成功完全登录后,您可以使用进行检索,
[[FBSession activeSession] accessToken];