在过去的5个小时里,我一直在努力将Facebook应用到我的应用程序中,这一直是一个彻头彻尾的痛苦。我现在正在基于Facebook网站一步一步走。我已经按照他们的说法实现了所有内容,但我对如何从另一个视图控制器调用Facebook感到困惑(例如,打开登录屏幕,然后让用户在墙上发布内容)。
我是怎么做到的。如果有人可以请花时间解释我将永远欠你的债,我正在失去理智。感谢
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
facebook = [[Facebook alloc] initWithAppId:@"XXXXXXXXXX" andDelegate:fbControl];
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];
}
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [facebook handleOpenURL:url];
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
[facebook dialog:@"feed" andDelegate:self];
}
答案 0 :(得分:0)
您所做的一切就是与Facebook应用程序进行交互,其中没有任何代码可以让您的应用程序进行交互。例如,我在我的一个应用程序中有这个:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
FACEBOOK_APP_ID, @"app_id",
self.newsItem.link, @"link",
self.newsItem.imageURL, @"picture",
self.newsItem.title, @"caption",
contentString, @"description",
nil];
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
[appDelegate.facebook dialog:@"feed" andParams:params andDelegate:(id)self];
这显示了一个对话框,允许用户在墙上发布内容。您需要调用的方法取决于您要执行的操作,但dialog:andParams:andDelegate
用于显示“发布到新闻Feed”对话框。