Facebook like button機能の実現


まず、Facebookにアプリケーションを追加し、対応するAppIdを取得する必要があります.具体的な方法はここでは説明しません.その後、FacebookのSDKをダウンロードし、プロジェクトに追加します.
 
具体的な実装方法は添付ファイルを参照してください.以下にはコアメソッドの一部のみがリストされます.
 
#import "FacebookLikeViewDemoViewController.h"

@interface FacebookLikeViewDemoViewController () <FacebookLikeViewDelegate, FBSessionDelegate>

@end


@implementation FacebookLikeViewDemoViewController

@synthesize facebookLikeView = _facebookLikeView;

- (id)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        _facebook = [[Facebook alloc] initWithAppId:@"158575400878173" andDelegate:self];
    }
    return self;
}

- (void)dealloc {
    [_facebook release];
    [_facebookLikeView release];
    [super dealloc];
}

#pragma mark FBSessionDelegate methods

- (void)fbDidLogin {
	self.facebookLikeView.alpha = 1;
    [self.facebookLikeView load];
}

- (void)fbDidLogout {
	self.facebookLikeView.alpha = 1;
    [self.facebookLikeView load];
}

#pragma mark FacebookLikeViewDelegate methods

- (void)facebookLikeViewRequiresLogin:(FacebookLikeView *)aFacebookLikeView {
    [_facebook authorize:[NSArray array]];
}

- (void)facebookLikeViewDidRender:(FacebookLikeView *)aFacebookLikeView {
    [UIView beginAnimations:@"" context:nil];
    [UIView setAnimationDelay:0.5];
    self.facebookLikeView.alpha = 1;
    [UIView commitAnimations];
}

- (void)facebookLikeViewDidLike:(FacebookLikeView *)aFacebookLikeView {
    UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Liked"
                                                     message:@"You liked Yardsellr. Thanks!"
                                                    delegate:self 
                                           cancelButtonTitle:@"OK"
                                           otherButtonTitles:nil] autorelease];
    [alert show];
}

- (void)facebookLikeViewDidUnlike:(FacebookLikeView *)aFacebookLikeView {
    UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Unliked"
                                                     message:@"You unliked Yardsellr. Where's the love?"
                                                    delegate:self 
                                           cancelButtonTitle:@"OK"
                                           otherButtonTitles:nil] autorelease];
    [alert show];
}

#pragma mark UIViewController methods

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.facebookLikeView.href = [NSURL URLWithString:@"http://www.yardsellr.com"];
    self.facebookLikeView.layout = @"button_count";
    self.facebookLikeView.showFaces = NO;
    
    self.facebookLikeView.alpha = 0;
    [self.facebookLikeView load];
}

- (void)viewDidUnload {
    [super viewDidUnload];
    self.facebookLikeView = nil;
}

@end