我最近下载了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”]返回名称。但是,[result objectForKey:@“access_token”]不返回任何内容。这非常令人沮丧,因为我需要将访问令牌传递给我的Google App Engine用户管理后端以创建新用户。所以,希望我所包含的代码能够明确我的认证策略(无论它是什么)。有谁知道我在这种情况下如何获得访问令牌?如果你能帮我解决我需要包含的头文件等问题,我将不胜感激。
谢谢,
约翰
答案 0 :(得分:3)
我做的与你完全一样。我正在制作自己的HTTP请求,所以我需要accessToken,而且iOS Facebook SDK不记得过去启动的accessToken,即使是没有过期的请求!
调用[_facebook authorize:permissions delegate:self];在fbDidLogin委托调用中,您可以轻松地拉(假设您在_facebook中保留了facebook对象):
- (void)fbDidLogin {
NSString *accessToken = _facebook.accessToken;
NSDate *expirationDate = _facebook.expirationDate;
}
瞧。
要通过应用启动来处理持久性,您可以保存此数据并在任何请求之前手动设置这些访问者。
答案 1 :(得分:1)
成功完成登录后,您可以使用
进行检索[[FBSession activeSession] accessToken];