Facebook iOS SDK: как получить статус пользователя Facebook? - PullRequest
1 голос
/ 02 февраля 2012

Мне очень тяжело пользоваться справкой Facebook iOS SDK, потому что я не являюсь опытным программистом. У меня просто простой вопрос.

Я знаю, что следующий код приносит мне информацию о пользователе ...

[facebook requestWithGraphPath:@"me" andDelegate:self];

а куда это деваться? Как я могу, скажем, получить имя пользователя или статус и установить его в качестве значения метки?

Я был бы благодарен gazillion раз, если кто-то напишет мне весь код в ответ.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Когда вы вызываете этот метод, вот что ожидает SDK:

  • self реализует FBRequestDelegate
  • self имеет запрос метода: didLoad

Вотбыстрый пример кода:

---- MyClass.h BEGIN ----

#import <UIKit/UIKit.h>
#import "FBConnect.h"

@interface MyClass : NSObject <FBSessionDelegate, FBRequestDelegate>

@property (nonatomic, retain) Facebook *facebook;
@property (nonatomic, retain) NSString *userStatus;

@end

---- MyClass.h END ----

---- MyClass.m BEGIN ----

#import "MyClass.h"

@implementation MyClass

@synthesize facebook;
@synthesize userStatus;

- (id)init {
    self = [super init];

    if (self) {
        facebook = [[Facebook alloc] initWithAppId:@"App ID Here" andDelegate:self];
    }

    return self;
}

- (void)fbDidLogin {
    NSLog(@"Facebook logged in!");
    [facebook requestWithGraphPath:@"me" andDelegate:self];
}

- (void)request:(FBRequest *)request didLoad:(id)result {
    NSLog(@"Request loaded! Result: %@", result);
    SBJSON *parser = [[SBJSON alloc] init];
    NSDictionary *jsonResponse = [parser objectWithString:result error:nil];
    userStatus = [jsonResponse objectForKey:message];
    [parser release];

    NSLog(@"User's status message: %@", userStatus);
}

@end

---- MyClass.m END ----

Надеюсь, это поможет!

1 голос
/ 22 февраля 2012

Umair,

После получения токена доступа вы можете использовать этот код:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://graph.facebook.com/me?access_token=youracesstoken"]];

NSError *err = nil;

NSURLResponse *resp = nil;

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:&resp error:&err];


if (resp != nil) {

    NSString *stringResponse = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];

    NSLog(@"stringResponse---%@",stringResponse);

    // stringResponse will be in JSON Format you need to use a JSON parser (Like SBJSON or TouchJSON)
}
...