2012-01-23 4 views
0

Поскольку изменения в SDK в Facebook каждый час трудно получить фактическое руководство, которое работает с текущей версией SDK .. некоторые изменения радикальны!iPhone Facebook SDK - Загрузить фотографию из вашего приложения в Facebook

Я пытаюсь загрузить фотографию ... но ПРОБЛЕМА - это мои методы FBSessionDelegate «fbDidLogin» никогда не вызывается. Я вхожу, получить обратно в приложение, но ничего не произошло:/

Я предполагаю, что есть проблема с моей сессии Делегат:/

Основное изменение в новом SDK о делегатом ... вы установите делегат однажды в представлении загрузил, а не установил его [facebook authorize: permissions delegate: self];

Ive пытался с видео (учебник) найдено: http://developers.facebook.com/blog/post/532/

Это мой .Н

#import "Facebook.h" 

@interface sampleClass : UIViewController 
          <FBSessionDelegate, FBRequestDelegate> { 

    Facebook * facebook; 
} 

@property (strong, nonatomic) Facebook * facebook; 

- (IBAction)uploadPhoto:(id)sender; 

И это мой .М

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    facebook = [[Facebook alloc] initWithAppId:kAppId andDelegate:self]; 
} 

- (IBAction)uploadPhoto:(id)sender { 

    NSArray* permissions = [[NSArray alloc] initWithObjects: 
          @"offline_access", @"publish_stream", nil]; 

    [facebook authorize:permissions]; 

} 

#pragma mark - Facebook Session Delegate Methods 

- (void)fbDidLogin { 
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"mov"]; 
    NSData *videoData = [NSData dataWithContentsOfFile:filePath]; 
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
           videoData, @"video.mov", 
           @"video/quicktime", @"contentType", 
           @"Video Test Title", @"title", 
           @"Video Test Description", @"description", 
           nil]; 
    [facebook requestWithGraphPath:@"me/videos" 
        andParams:params 
       andHttpMethod:@"POST" 
        andDelegate:self]; 
} 

-(void)fbDidNotLogin:(BOOL)cancelled { 
NSLog(@"did not login"); 
} 


#pragma mark - Facebook Request Delegate Methods 

- (void)request:(FBRequest *)request didLoad:(id)result { 
if ([result isKindOfClass:[NSArray class]]) { 
    result = [result objectAtIndex:0]; 
} 
NSLog(@"Result of API call: %@", result); 
} 

- (void)request:(FBRequest *)request didFailWithError:(NSError *)error { 
    NSLog(@"Failed with error: %@", [error localizedDescription]); 
} 



#pragma mark - Support SSO for Facebook 


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

ответ

0

Вам нужно для размещения вашего делегата приложения.

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 

и положить «Facebook * Facebook» переменную в месте, где он может быть доступ как Application делегатом и ваш View Controller.

Вы можете следовать этому руководству для дальнейших разъяснений

https://developers.facebook.com/docs/mobile/ios/build/#implementsso

0

ли вы получить это работает? Вы пытались использовать Hackbook для примера? Это пример загрузки sdk. Эта ссылка относится к Demo App, но теперь она называется Hackbook. http://thinkdiff.net/facebook/how-to-develop-facebook-application-for-iphone/

Mich

+0

Да, я понял! Но мне пришлось использовать другой путь! Теперь я делюсь фотографией как фотоальбом для приложения, поэтому facebook позволяет мне загружать фотографию на facebook альбом, а не делиться «статьей», которую я мог бы сделать, но мне пришлось бы загружать свое изображение на FTP затем соедините изображение как отображаемое изображение. Понимаю ? :П – Marc