iPhone Facebook SDK - Загрузить фото из приложения в Facebook - PullRequest
0 голосов
/ 24 января 2012

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

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

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

Основное изменение в этом новом SDK касается делегата... Вы устанавливаете делегата один раз в представлении, загруженном вместо того, чтобы установить его [facebook authorize: делегат полномочий: self];

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

Это мой .H

#import "Facebook.h"

@interface sampleClass : UIViewController 
                             <FBSessionDelegate, FBRequestDelegate> {

    Facebook * facebook;
}

@property (strong, nonatomic) Facebook * facebook;

- (IBAction)uploadPhoto:(id)sender;

А это мой .M

- (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];
}

Ответы [ 2 ]

0 голосов
/ 25 апреля 2012

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

Mich

0 голосов
/ 25 февраля 2012

Вы должны указать своего делегата приложения.

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

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

Вы можете следовать этому руководству для уточнения

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...