2016-01-28 7 views
0

Я кодирую для интеграции facebook в свое приложение. Я хочу, чтобы получить общее количество аналогичного кола-объекта, я прочитал документ на https://developers.facebook.com/docs/graph-api/reference/v2.5/object/likes и они сказали, что запрос:Как получить facebook как total_count с помощью FB Graph API?

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
          initWithGraphPath:@"/{object-id}/likes" 
            parameters:params 
            HTTPMethod:@"GET"]; 
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, 
            id result, 
            NSError *error) { 
// Handle the result 
}]; 

Но каков PARAMS мне нужно пройти?

я передать Params, что это @{@"fields":@"share"} то результат Возвращается

"share": { 
    "comment_count": 0, 
    "share_count": 0 
    } 

Я использовал Graph API Explorer, с этим URL, то он вернулся:

{ 
    "og_object": { 
    "id": "952460714815635", 
    "type": "website", 
    "updated_time": "2015-08-20T08:45:43+0000", 
    "url": "http://dev-vn.magestore.com/simicart/1800/index.php/blackberry-8100-pearl.html/likes" 
    }, 
    "share": { 
    "comment_count": 0, 
    "share_count": 0 
    }, 
    "id": "http://dev-vn.magestore.com/simicart/1800/index.php/blackberry-8100-pearl.html/likes" 
} 

Но я не могу найти количество символов для этого объекта. Где указано свойство total_count? Любой, у кого есть опыт, помогите мне. Спасибо!

ответ

0

Попробуйте отправить nil в parameters часть. Таким образом, ваш запрос будет выглядеть следующим образом:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
          initWithGraphPath:@"/{object-id}/likes" 
            parameters:nil 
            HTTPMethod:@"GET"]; 
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, 
            id result, 
            NSError *error) { 
// Handle the result 
}]; 

В ответ вы должны получить ключ total_count с соответствующим значением общего числа подобных.

Если это не сработает, попробуйте отправить ["summary" = true] в разделе parameters и проверьте, получили ли вы требуемую подачу в ответ. В этом случае ваш запрос должен выглядеть так:

NSDictionary *setFlag = @[@"summary" = true]; 
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
           initWithGraphPath:@"/{object-id}/likes" 
             parameters:setFlag 
             HTTPMethod:@"GET"]; 
    [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, 
             id result, 
             NSError *error) { 
    // Handle the result 
    }]; 

Пожалуйста, попробуйте это и посмотрите, работает ли он.

+0

Спасибо, я добавлен параметр: @ {@ "summary": @ "true"}, но он не возвратил значение total_count, он был таким же, как раньше. :( –

+0

Пожалуйста, найдите, как установить определенный флаг в запросе API графического интерфейса Facebook для iOS. В документации указано, что если вы установите флаг как «summary = true», вы должны получить ответ «total_count». –

0

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

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
          initWithGraphPath:@"/{object-id}/likes?summary=true&fields=total_count" 
            parameters:nil 
            HTTPMethod:@"GET"]; 
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, 
            id result, 
            NSError *error) { 
// Handle the result 
}]; 
0

Спасибо, используя FBSDKGraphRequest, казалось, что не работает. Я использовал NSURLConnection для запроса напрямую по URL-адресу, и он работал.

NSString* requestURL = [NSString stringWithFormat:@"https://graph.facebook.com/fql?q=SELECT like_count FROM link_stat WHERE url = \"%@\"",productURL]; 

NSURL* url = [NSURL URLWithString:[requestURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

NSURLResponse *response; 
NSError *error; 
//send it synchronous 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

NSDictionary* data = [NSJSONSerialization JSONObjectWithData:responseData 
                options:kNilOptions 
                 error:&error]; 
[productMoreVC stopLoadingData]; 

if(!error) 
{ 
    lblLikeCount.text = [NSString stringWithFormat:@"%@", [[[data objectForKey:@"data"] objectAtIndex:0] objectForKey:@"like_count"]]; 
} 
0

На Facebook возникла проблема. Я создал билет об этой проблеме - теперь это fixed.

Запрос:

/v2.6/me?fields=likes.limit(0).summary(true)

Ответ:

{ 
    "likes": { 
    "data": [ 
    ], 
    "summary": { 
     "total_count": 7 
    } 
    }, 
    "id": "1234567890" 
} 
Смежные вопросы