Анализ отклика новостной ленты в iphone с использованием Facebook Graph Api - PullRequest
0 голосов
/ 19 апреля 2011

Я использую Facebook Graph API ... для извлечения данных из ленты новостей в профиле Facebook ..

и вот ответ, который я получаю в консоли

    {
    application =         {
        id = 2309869772;
        name = Links;
    };
    "created_time" = "2011-02-10T09:44:27+0000";
    from =         {
        id = 1845195019;
        name = "Paritosh Raval";
    };
    icon = "http://static.ak.fbcdn.net/rsrc.php/v1/yD/r/aS8ecmYRys0.gif";
    id = "1845195019_192144087475935";
    likes =         {
        count = 1;
        data =             (
                            {
                id = 1845195019;
                name = "Paritosh Raval";
            }
        );
    };
    link = "http://www.facebook.com/AMDAVAD";
    name = "once you live in AHMEDABAD u cannot live anywhere else in the world..";
    picture = "http://profile.ak.fbcdn.net/hprofile-ak-snc4/203562_115963658443669_4129246_n.jpg";
    properties =         (
                    {
            name = Page;
            text = "21,803 people like this.";
        }
    );
    type = link;
    "updated_time" = "2011-02-10T09:44:27+0000";
},
    {
    application =         {
        id = 2392950137;
        name = Video;
    };
    "created_time" = "2011-02-02T04:18:22+0000";
    description = "must watch and explore :))";
    from =         {
        id = 1845195019;
        name = "Paritosh Raval";
    };
    icon = "http://static.ak.fbcdn.net/rsrc.php/v1/yD/r/aS8ecmYRys0.gif";
    id = "1845195019_194836027209359";
    likes =         {
        count = 1;
        data =             (
                            {
                id = 100000701228096;
                name = "Bhargav Jani";
            }
        );
    };
    link = "http://www.facebook.com/video/video.php?v=152586058110610&comments";
    name = "It Happens Only in....";
    "object_id" = 152586058110610;
    picture = "http://vthumb.ak.fbcdn.net/hvthumb-ak-snc4/50893_152586468110569_152586058110610_18299_1832_t.jpg";
    properties =         (
                    {
            name = Length;
            text = "0:54";
        }
    );
    source = "http://video.ak.fbcdn.net/cfs-ak-ash2/70137/56/152586058110610_53804.mp4?oh=481e53b824f6db8e3195fc9c0d07571d&oe=4DAFC300&__gda__=1303364352_7670272db65e93ec75dcaaed16b6d805";
    type = video;
    "updated_time" = "2011-02-02T04:18:22+0000";
}

И я хочу показать все данные в организованной структуре в консоли. Кто-нибудь может мне помочь с этим?

1 Ответ

1 голос
/ 19 апреля 2011

неясно, что именно вы спрашиваете, но я пытаюсь ответить.

Прежде всего вам нужно проанализировать этот ответ в методе - (void) запрос: (FBRequest *) запрос didLoad: (id) результатиз Facebook iOS SDK

результат может быть строкой, NSArray, если у вас есть несколько результатов, и NSDictionary

В вашей консоли выводится NSDictionary со включенными массивами и словарямив этом.У меня есть небольшое руководство по этому вопросу, но оно только на русском языке, и сайт сегодня недоступен :(, поэтому я просто скопировал один пример из моей статьи.

Допустим, мы хотим знать, что нравится пользователю Facebook

- (IBAction)getUserInfo:(id)sender {
  [_facebook requestWithGraphPath:@"me/likes" andDelegate:self];
}

если мы попробуем этот ответ Graph API в браузере или выведем на консоль, мы увидим, что возвращает этот запрос. Он возвращает словарь с одним-единственным ключом - «data» и соответствующий массив этому ключу. Этот массив снова содержит объекты словаря сключи -
«name», «category», «id», «create_time». Не забывайте предварительно запрашивать разрешение «user_likes». Поэтому у нас есть такой метод разбора:

- (void)request:(FBRequest *)request didLoad:(id)result {
    if ([result isKindOfClass:[NSArray class]]) {
        result = [result objectAtIndex:0];
    }
    if ([result objectForKey:@"owner"]) {
        [self.label setText:@"Photo upload Success"];
    } else if ([result objectForKey:@"data"]){
        NSArray *likes = [result objectForKey:@"data"];
        NSString *text=@"You don't like Steve";
        for (NSDictionary* mylike in likes) {
            NSString *mylikeName = [mylike objectForKey:@"name"];
            if ([mylikeName isEqualToString:@"Steve Jobs"]) {
                text=@"You like Steve";
                break;
            }
        }
        [self.label setText:text];
    }
};

Вы можете разобратьВы получаете такой же результат и заполняете переменные вашего объекта, а затем используете его для отображения информации в TableView, например. Удачи!

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