【发布时间】:2011-12-01 18:34:56
【问题描述】:
我正在尝试将新的 oAuth2 facebook SDK 实施到我的应用程序中,但我一生都无法理解登录/验证后我应该如何返回我的应用程序。
我的目标是在用户墙上发布消息。
我目前正在使用以下方式开始登录过程:
-(void)tryFBlogin {
NSString *appId = @"113142482******";
NSArray *permissions = [[NSArray arrayWithObjects:@"publish_stream",nil] retain];
TheAppDelegate *theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication]delegate];
//Asking for permission
theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
theAppDelegate.facebook = [[Facebook alloc] initWithAppId:appId andDelegate:self];
Facebook *fb = [theAppDelegate facebook];
[fb authorize:permissions];
}
正在打开一个 safari 浏览器。如果我已经登录并获得了应用程序授权,则会有一条消息告诉我,并且我可以按下 OKay 按钮。
当我按下 OKay 按钮时,我收到一条警告说 safari 无法打开页面。我确认了警报,然后看着一个空白的 Safari 窗口。
如果我退出 facebook,我会看到我填写的登录屏幕,然后会看到与上面相同的内容。
我知道我还没有在任何地方实施发布命令,因为我不知道应该在哪里/何时实施。
我确实有这个委托方法,但这似乎永远不会被调用
- (void)fbDidLogin {
NSLog(@"fbDidLogin");
}
这是我等待放置在某处的代码:
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
kAppId, @"113142482******",
facebookUrl, @"link",
@"http://www.domain.com", @"picture",
@"My Message", @"name",
@"Caption text!", @"caption",
@"Message text.", @"message",
nil];
[facebook dialog:@"feed" andParams:params andDelegate:self];
我的应用主 AppDelegate 中也有以下方法:
-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url{
[facebook handleOpenURL:url];
return YES;
}
非常感谢任何帮助/建议。
谢谢
标记
【问题讨论】:
-
您是否注册了您的应用以从您的 plist (CFBundleURLTypes) 中的 facebook sdk 打开回调?
-
不确定这是否是我的愚蠢或不清楚的指示,但我的问题是在需要 fb113142482****** 时定义 fb[113142482******]。那是没有方括号。