我使用此代码呈现共享对话框:
if (![[FBSession activeSession] isOpen]) {[self login]; return;}
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"name", @"name",
@"caption", @"caption",
@"description", @"description",
@"http://cnn.com", @"link",
@"http://cnn.com/.png", @"picture",
nil];
[FBWebDialogs presentFeedDialogModallyWithSession:nil
parameters:params
handler:
^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
NSLog(@"Error publishing story.");
} else {
if (result == FBWebDialogResultDialogNotCompleted) {
NSLog(@"User canceled story publishing (clicked the 'x' icon)");
} else {
// Handle the publish feed callback
NSLog(@"Handle the publish feed callback");
}
}
}];
我在 Info.plist 中添加了正确的条目(根据 sdk 文档需要):
和 AppDelegate 方法也处理 facebook 重定向:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"In fallback handler");
}];
}
-(void)applicationWillTerminate:(UIApplication *)application{
[FBSession.activeSession close];
}
我还添加了 iOS Facebook 3.5.1 SDK 所需的框架:
它提供了空对话框(在真实设备和模拟器上),加载指示器永远旋转:
日志等中没有显示错误......我可以轻松地关闭它(使用正确的处理程序日志)。
我假设 FBSession 已正确启动并打开(我可以通过重定向到 Safari 成功授权并返回应用程序 - 这让我认为重定向工作正常)。
为什么会这样?我错过了什么?顺便说一句:为什么没有错误日志?
这太令人沮丧了,因为我之前已经多次实施 facebook 集成,但在这个应用程序中,我想尝试最新的 SDK,它被宣传为:“变得前所未有的简单”。