【发布时间】:2012-08-16 16:03:50
【问题描述】:
我正在使用最新的 Facebook iOS SDK 3.0
我在登录过程中需要帮助:
首先我在AppDelegate.h中声明这个属性:
@property (nonatomic, strong) FBSession *session;
在 ViewController 类中,我可以在代码中使用它:
AppDelegate *delegate = [[UIApplication sharedApplication]delegate];
[delegate.session someproperty];
我在 ViewController 中也有这个方法,从 viewDidLoad 调用:
-(void)login
{
AppDelegate *delegate = [[UIApplication sharedApplication]delegate];
[delegate.session accessToken];
NSLog(@"%d",delegate.session.isOpen);
if (!delegate.session.isOpen)
{
delegate.session = [[FBSession alloc] init];
if (delegate.session.state == FBSessionStateCreatedTokenLoaded)
{
[delegate.session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error)
{
NSLog(@"%d", delegate.session.isOpen); // First Line //////////////////
}];
}
NSLog(@"%@", delegate.session.description); // Second Line //////////////////
}
}
facebook 应用程序获得授权后,第一个NSLog 打印零,第二个NSLog 表示session 状态是FBSessionStateCreated 而不是FBSessionStateOpen?
这是第二个NSLog的输出:
2012-08-16 18:37:24.327 Facebook3[2418:f803] <FBSession: 0x6890ff0, state: FBSessionStateCreated, loginHandler: 0x0, appID: 193716877424306, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x6890f20>, expirationDate: (null), refreshDate: (null), attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:()>
我在这里缺少什么。
注意:在https://developers.facebook.com 的应用程序设置中,我将应用程序配置为: 1- 为 iOS SSO 配置:启用 2- iOS 原生深度链接:启用 3- iOS Bundle ID:com.mycompany.appname
【问题讨论】:
标签: objective-c ios facebook