2012-03-11 60 views
0

我正在開發一個iOs 5應用程序,並且正在嘗試添加與Facebook SDK的Facebook共享。我一直在編碼,但它不起作用。這是我從Facebook的開發者網站使用的代碼:針對iOs的Facebook SDK無法正常工作

- (IBAction) buttonpressed { 
    facebook = [[Facebook alloc] initWithAppId:@"245697495524266" 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 fbDidLogin];    
    }   
}    
- (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 
    return [facebook handleOpenURL:url]; 
} 
- (void)fbDidLogin { 
    NSLog(@"Facebook did login"); 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 
    // Here I would like to share something (photo...) 
} 

當我按下按鈕,我去了Facebook應用程序,我必須讓應用程式,然後我回到我的應用程序。問題是​​不運行(NSLog未出現在控制檯中),所以我無法共享任何內容。我該如何解決它?

回答

0

唯一的問題可能是,如果你是從哪裏把這個代碼的類不符合FBSessionDelegate在.h文件中

@interface Yourclass : NSObject <FBSessionDelegate> 
+0

我有這個 所以我不認爲問題在於。或者我只需要有FBSessionDelegate? – 2012-03-11 13:08:09

0

?在應用程序代表?

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
{ 
    return [facebook handleOpenURL:url]; 
} 

它必須在應用程序委託中,而不是在你的類中。

0

我想你忘了這兩種方法,也許忘了將你的Facebook應用程序ID添加到信息文件中的URL類型。 for more detail
//前4.2支持

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    return [facebook handleOpenURL:url]; 
} 

//對於4.2+支持

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 
    return [facebook handleOpenURL:url]; 
} 
相關問題