2012-05-23 21 views
1

我一直在努力嘗試將Facebook應用到我的應用程序的最後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

所有你要做的是能夠與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用於顯示「發佈到新聞訂閱源」對話框。

+0

感謝您的回覆,但我得到一個錯誤,說「newsItem」找不到?再次感謝 –

+0

是的,newsItem是我應用程序中的一個對象。您需要用您自己的值替換這些值。 –

相關問題